我正在閱讀教科書,我無法理解此查詢: 查找預訂了所有船隻的船員。EXCEPT command - 查找預約了所有船隻的船員
- 我們有3個表:
- 水手:SID,SNAME,等級,年齡(初級:SID)
- 船:投標(初級:BID)
- 儲量:SID,競價天(初級,SID,競價天)(SID是外鍵水手,出價外鍵船)
對於查詢,查找水手誰「VE保留所有船隻,給出的答案是:
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中時,它顯示我有語法錯誤,除了上面給出的解決方案之外,是否還有其他方式來執行查詢:查找保留所有船隻的水手
謝謝
'except'在MySQL中無效。你可以在SQL Server中使用它。 –
您可以將'except'重寫爲'NOT EXISTS()' – wildplasser
而且您甚至可以將其重寫爲'NOT IN()':http://stackoverflow.com/q/26697519/905902 – wildplasser