我无法理解此查询有效。假设返回订购了所有商品的客户的姓名。
R是指客户下的商品订单表,其中包含客户 id (cid) 和商品 id (iid)
I指的是可以订购的项目表,其中包含项目 ID
C是带有客户 ID 的客户表
SELECT cname
FROM Customer C
WHERE NOT EXISTS
( (SELECT I.iid
FROM Item I)
EXCEPT
(SELECT R.iid
FROM Order R
WHERE R.cid=C.cid))
根据我的假设,带有 SELECT R.iid 的底部嵌套查询获取任何客户订购的所有商品。
然后上面的嵌套查询 EXCEPT with SELECT I.iid,通过减去下面的查询来找到之前没有订购过的所有项目。
如果它是嵌套的,那么 NOT EXISTS 会评估什么语句?是因为 FROM Customer C 而导致的 R.cid = C.cid 吗?. 我不确定我将如何得到我的最终结果。谢谢你的帮助。