首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL检查一对元组在不同的表中是否至少有一个匹配

问SQL检查一对元组在不同的表中是否至少有一个匹配
EN

Stack Overflow用户
提问于 2018-06-26 04:19:14
回答 1查看 41关注 0票数 1

我有两张表:member和purchase

会员可以属于多个俱乐部,通过俱乐部进行购买。例如,成员A可以属于3个俱乐部,并且可以通过俱乐部A购买一件物品,并通过俱乐部B购买一件物品。

会员和购买都包含会员ID和俱乐部名称。

我如何确定一个会员是否从他们所属的每个俱乐部购买了一件物品(多少件无关紧要)?

编辑:这是一个更大的家庭作业问题的一部分,寻找没有从他们所在的每个俱乐部购买书籍的成员。我的想法是使用一个例外条款,将所有购买了一本书的人从他们所在的每个俱乐部中删除,但我在这方面遇到了困难。

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 04:37:49

你可以计算会员购买的不同俱乐部的数量,并将其与俱乐部的总数进行比较:

代码语言:javascript
复制
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_clubs
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51031265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档