基本上我有两张桌子:
rid|element id|element
1 | x 1 | a
1 | y 2 | b
1 | z 3 | c
1 | a 4 | d
2 | b 5 | e
2 | c 6 | x
2 | d 7 | z
3 | e
3 | z
3 | x
我希望返回rid = 2, 3
但不返回1
,因为第二个表中没有元素y
。我认为答案取决于我使用的联接类型,但我真的无法绕过那些
答案 0 :(得分:2)
我会选择将第一个表格连接到第二个表格,然后按rid
进行汇总,以检查第一个表格中的每个element
是否与第二个表格中的element
相匹配表
SELECT t1.rid
FROM table1 t1
LEFT JOIN table2 t2
ON t1.element = t2.element
GROUP BY t1.rid
HAVING SUM(CASE WHEN t2.element IS NULL THEN 1 ELSE 0 END) = 0