查询两个表-返回不在两个表中的项目

时间:2019-12-25 12:16:28

标签: sql sql-server

我有两个这样的表:

TableA

Id | ProjectId | JobId 

TableB

Id | Title

我想编写一个查询,以ProjectId = 2返回不在TableA中的TableB ID。

我写了一个查询

Select B.Id 
From TableB B 
Right Join TableA A On B.Id = A.JobId 
Where B.JobId Is Null And A.ProjectId = 2

但是它返回零输出。

谢谢

1 个答案:

答案 0 :(得分:5)

我将在此处使用EXISTS

SELECT b.Id
FROM TableB b
WHERE NOT EXISTS (SELECT 1 FROM TableA a WHERE a.JobId = b.Id AND a.ProjectId = 2);

用英语阅读时,上面说要选择Id中的每个TableB,以使我们无法在IdTableA的{​​{1}}中找到相等的ProjectId也是2。

查询已编辑