我有一个名为"buys"
的表,其中包含clientID
和itemName
以及其他irrelvent列,另一个表"item"
包含"itemName"
和{{1} }} 列。
我需要一个查询,在itemType
表中显示所有购买所有可能项目的客户,而不使用计数功能。
我尝试使用"item"
和"exist"
,但无法找到使用它的方法。
SELECT * from buys;
"not exists"
SELECT * from item;
cid | rno | iname | amount
-----+-----+--------------+--------
2 | 1 | orange juice | 2
1 | 2 | orange juice | 1
2 | 1 | macchiato | 2
1 | 3 | macchiato | 1
1 | 1 | cappuccino | 500
1 | 2 | cappuccino | 500
答案 0 :(得分:0)
如果您知道项目表中有3个项目,那么您可以这样做:
select cid from buys group by cid
having count(distinct iname) = 3;
或者如果您喜欢嵌套
select cid from buys group by cid
having count(distinct iname) = (select count(iname) from item);
如果你真的想要一些没有count
的东西,不是一个好的查询但是有效:
select cid from buys group by cid
having group_concat(distinct iname order by iname) like 'cappuccino,macchiato,orange juice'
请记住在匹配项中按名称排序项目,请参阅上面的查询