SELECT ID FROM (
SELECT DISTINCT A.ID AS ID FROM TABLEA A #有ID: 1 2 3 4 5
UNION ALL
SELECT DISTINCT B.ID AS ID FROM TABLEB B #有ID: 2 3
)TEMP GROUP BY ID HAVING COUNT(ID) = 1 #合并后分组,找到个数为1的,就是差异的1 4 5
Mysql没有提供差集,和交集,
为了实现差集和交集,我们可以做合并后,group by
COUNT(ID) = 1 差集<pre name="code" class="sql">COUNT(ID) = 2 交集

本文介绍如何使用SQL查询两个表之间的差集和交集。通过将两个表的数据进行合并后分组,并利用COUNT函数来筛选出个数为1的情况以找出差集,个数为2的情况则表示交集。
4970

被折叠的 条评论
为什么被折叠?



