我正在阅读一本教科书,但我不明白这个查询:查找已预订所有船只的水手。
- 我们有 3 张桌子:
- 水手:sid、sname、等级、年龄(主要:sid)
- 船:出价(主要:出价)
- Reserves: sid, bid, day (primary, sid, bid, day) (sid是水手的外键,bid是船的外键)
对于查询,查找已预订所有船只的水手,给出的答案是:
SELECT S.sname
FROM Sailors S
WHERE NOT EXISTS
((SELECT B.bid
FROM Boats B)
EXCEPT
(SELECT R.bid
FROM Reserves R
WHERE R.sid=S.sid))
我的问题是:
上面的查询有问题吗?当我将它放入 MySQL Workbench 时,它显示我有语法错误,除了
除了上面书中给出的解决方案,还有没有其他的查询方式:查找已预订所有船只的水手
谢谢,