我知道这应该很容易,但是我看不到森林覆盖树木。

TABLE 1
GNUM
Team1
Team2

TABLE 2
GNUM
ID
TeamID

对于表1中的每个记录,表2中可以有多个相关记录

这是我似乎无法弄清楚的

我需要一个查询,该查询将告诉我何时表2中没有针对特定游戏的特定团队的记录
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

最佳答案

您可以为此使用UNIONLEFT 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/

10-11 11:15