2016-01-31 8 views
-1

У меня есть три таблицы таким образом, чтоИспользование DELETE и UPDATE

CREATE TABLE guest(
    name varchar(100), 
    ranking int, 
    PRIMARY KEY (name) 
); 

CREATE TABLE room(
    roomname varchar(100), 
    wallcolor varchar(100), 
    rating int, 
    PRIMARY KEY(roomnane) 
); 

CREATE TABLE reservation(
    name varchar(100), 
    roomname varchar(100), 
    day varchar(100), 
    moveinday int, 
    moveoutday int, 
    PRIMARY KEY(roomname, day, start, finish), 
    FOREIGN KEY(roomname) REFERENCES room(roomname), 
    FOREIGN KEY(name) REFERENCES guest(name) 
); 
  1. Я пытаюсь к написать запрос для удаления всех гостей, которые не квалифицированы в аренду любых помещений, вместе со своими оговорками. Квалифицированный в аренду означает, что рейтинг гостей больше или равен рейтингу номера.

    Я попытался следующий

    DELETE FROM guests, reservations 
    WHERE guests.rating < rooms.rating 
    

    Это не выполнение задачи. Что я могу делать неправильно? Мне нужно поддерживать ссылочную целостность.

  2. Я пытаюсь изменить все номера «Озера» на номера «Залив» и «Залив» в номерах «Озеро» без явного изменения комнат. Как я могу это сделать? Я попытался использовать запрос на обновление, но я не уверен, как это сделать.

Любая помощь приветствуется

+2

Следует задать два совершенно разных вопроса. , , два разных вопроса. –

ответ

0
DELETE FROM guests, reservations 
WHERE guests.rating < rooms.rating 

У вас нет таблицы guests. Перейдите на страницу guest. А таблица guest не имеет поля rating только ranking. Проверьте свой код!

+0

делает это также удалить из резерваций? –

+0

если у вас есть опция каскада, это возможно. проверьте и напишите здесь –

Смежные вопросы