主表:
MasterID | PartID
1 1
2 3
3 5
部分表:
PartID | PartName | DeleteDate
1 Part1 NULL
2 Part2 NULL
4 Part4 NULL
5 Part5 08-04-2017
结果表:
MasterID | PartID
2 3
3 5
这两个表存在于两个不同的数据库中,如果主表具有不在Part表中的PartID且Master表具有在Part表中删除的任何PartID,则需要使用SQL查询进行验证以获取记录(即DeleteDate IS NOT NULL)
我正在尝试以下查询,
Select
*
FROM DBNAME.DBO.Master
Where PartID in (
Select
PartID
from Part)
and PartID not in (
Select
PartID
from Part
where DeleteDate is NOT NULL)
请让我知道是否有更好的方法。
答案 0 :(得分:0)
您可以将查询简化为:
Select m.*
from DBNAME.DBO.Master m
where m.PartID not in (Select p.PartID from Part p where p.DeleteDate is NOT NULL);
您似乎想要的行不是“未删除”,无论它们是否在表格中。
答案 1 :(得分:0)
你根本不需要第二个条件。
Select * DBNAME.DBO.Master Where PartID not in (Select PartID from Part)
涵盖PartID not in (Select PartID from Part where DeleteDate is NOT NULL)