反向集合为多个到1,其中并非所有记录都存在于一个表中

时间:2016-10-21 18:42:30

标签: sql vb.net ms-access

TSQL /访问

我试图返回结果集的反转....

SELECT Units.Unit_ID
FROM Units
WHERE (((Units.[Unit_ID]) In (SELECT Objects.Unit_ID FROM Objects)));

这将返回上面的完整集以及我预期的单个附加记录....

SELECT Units.Unit_ID
FROM Units
WHERE (((Units.[Unit_ID]) not In (SELECT Objects.Unit_ID FROM Objects)));

单位已放弃对象中不存在的记录。许多物体为1个单位。但是对象中不存在某些单位。这是我要找的结果集。

数据样本集:

物件 UNIT_ID 1 1 1 2 2 4 五 56 78

单位 UNIT_ID 1 2 3 4 五 56 78

结果集应为:3

我不想返回两个表中的值。

1 个答案:

答案 0 :(得分:1)

好奇,这又回归了什么:

SELECT Units.Unit_ID
FROM Units
LEFT JOIN Objects ON Objects.Unit_ID = Units.[Unit_ID]
WHERE Objects.Unit_ID IS NULL

OR

SELECT Units.Unit_ID
FROM Units
LEFT JOIN Objects ON Objects.Unit_ID = Units.[Unit_ID]
GROUP BY Units.Unit_ID
HAVING COUNT(Objects.Unit_ID) = 0