Ala*_*ang 3 sql t-sql sql-server relational-division
TableA
Name Items
A 1
A 2
A 2
A 3
A 3
B 1
B 1
B 2
B 2
C 1
C 2
C 2
C 3
TableB
Items ItemsName
1 One
2 Two
3 Three
Run Code Online (Sandbox Code Playgroud)
我想列出
Name
A
C
Run Code Online (Sandbox Code Playgroud)
因为A和C拥有TableB中的所有项目.B没有3.我想我应该使用"NOT EXISTS".
这是一种方法:
SELECT a.Name
FROM TableB AS b
JOIN TableA as a ON b.Items = a.Items
GROUP BY a.Name
HAVING COUNT(DISTINCT b.Items) = (SELECT COUNT(DISTINCT Items) FROM TableB)
Run Code Online (Sandbox Code Playgroud)
查询连接记录的TableB记录TableA.使用INNER JOIN我们可以找到匹配的记录TableA.
该HAVING子句检查不同Items值的数量是否等于总体if TableB.仅返回a.Name与所有 值相关的Items值TableB.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |