我知道这应该很容易,但我只见树木不见森林。
TABLE 1
GNUM
Team1
Team2
TABLE 2
GNUM
ID
TeamID
对于表1中的每条记录,表2中可以有多个相关记录
这是我似乎无法弄清楚的事情
我需要一个查询来告诉我何时 TABLE2 中没有特定团队的特定游戏的记录
For Example
TABLE1
GNUM Team1 Team2
1 A B
2 A C
3 B A
4 C B
5 B A
TABLE 2
GNUM TeamID
1 A
1 B
3 B
4 B
4 B
4 B
鉴于上述情况,我需要一个查询来显示表 2 中缺少记录的所有游戏。例如:
GNUM Missing Team
2 A
2 C
3 A
4 C
5 B
5 A
最佳答案
您可以为此使用UNION
和LEFT JOIN
:
SELECT a.*
FROM (SELECT GNUM, Team1
FROM TABLE1
UNION
SELECT GNUM, Team2
FROM TABLE1
)a
LEFT JOIN TABLE2 b
ON a.GNUM = b.GNUM
AND a.Team1 = b.TeamID
WHERE b.TeamID IS NULL
关于sql - MSSQL 查询帮助?应该很容易,但我必须要更多的咖啡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18342668/