【发布时间】:2016-05-12 05:14:52
【问题描述】:
我已经创建了三个表
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)
);
我正在尝试编写查询以查找预订每个“LakeView”房间的客人
我尝试了以下
SELECT g.name
FROM guest g, reservation r, room rr
WHERE rr.name = g.name
AND rr.roomname = "LakeView"
GROUP BY g.name
这似乎没有列出每个房间。我怎么能解决这个问题?
输入:
insert into guest values ('Andrew', 1);
insert into guest values ('Jack', 4);
insert into guest values ('Jake', 4);
insert into room values ('LakeView', 'white', 10);
insert into room values ('BayView', 'blue', 4);
insert into reservation values ('Andrew', 'LakeView', 'Friday', 10,15);
insert into reservation values ('Jake', 'LakeView', 'Monday', 10,16);
insert into reservation values ('Jack', ' BayView', 'Tuesday', 11,15);
想要的输出是
Andrew
Jake
【问题讨论】:
-
你能提供一些输入输出吗?
-
这个词的真正含义是什么谁预订了每艘“湖景”船?
-
那是一个错字。检查样本输入和预期输出的编辑
-
看起来可能是错误的WHERE rr.name = g.name。您正在将房间名称与客人姓名匹配。
-
如果
roomname是主键,怎么会有多个呢?这意味着它必须是独一无二的。