我有两张表:member和purchase
会员可以属于多个俱乐部,通过俱乐部进行购买。例如,成员A可以属于3个俱乐部,并且可以通过俱乐部A购买一件物品,并通过俱乐部B购买一件物品。
会员和购买都包含会员ID和俱乐部名称。
我如何确定一个会员是否从他们所属的每个俱乐部购买了一件物品(多少件无关紧要)?
编辑:这是一个更大的家庭作业问题的一部分,寻找没有从他们所在的每个俱乐部购买书籍的成员。我的想法是使用一个例外条款,将所有购买了一本书的人从他们所在的每个俱乐部中删除,但我在这方面遇到了困难。
发布于 2018-06-26 04:37:49
你可以计算会员购买的不同俱乐部的数量,并将其与俱乐部的总数进行比较:
SELECT m.*
FROM members m
JOIN (SELECT member_id, COUNT(DISTINCT club_id) AS club_purchases
FROM purchases
GROUP BY member_id) p ON m.member_id = p.member_id
CROSS JOIN (SELECT COUNT(DISTINCT club_id) AS all_clubs
FROM purchases) c
WHERE club_purchases = all_clubshttps://stackoverflow.com/questions/51031265
复制相似问题