使用DELETE和UPDATE

时间:2016-01-31 23:20:26

标签: mysql sql

我有三张桌子

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. 我试图改变所有&#34; Lake&#34;客房到&#34; Bay&#34;房间和&#34;海湾&#34;到&#34; Lake&#34;没有明确更改房间的房间。我怎么能这样做?我尝试使用更新查询,但我不知道如何实现这一目标。

  3. 感谢任何帮助

1 个答案:

答案 0 :(得分:0)

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

您没有表格guests。更改为guest。表guest只有rating字段ranking。 仔细检查你的代码!