在我的数据库中,我有一个包含所有文件的表
该表有几个依赖项(我们将它们命名为:FilesDep1、FilesDep2、FilesDep3、FilesDep4、FilesDep5)
files 表包含超过 20000 条记录,我需要过滤掉五个依赖项中的任何一个都未使用的文件。
所以我在 FilesDep1 的所有 FileId 上使用了 union
作为
select Id from [Files] where Id not in
(
select FileId from [FilesDep1]
union
select FileId from [FilesDep2]
union
select FileId from [FilesDep3]
union
select FileId from [FilesDep4]
union
select FileId from [FilesDep5]
)
所有工会给出的金额是 1997。所以我希望从这个查询中得到 18000+ 条记录,但是......它返回 0?
我想知道是什么导致了这种行为?
如果我将 更改not in
为in
,它确实显示了 unionquery 给出的 1997 年记录...
附言。请不要回应表的命名,或者我在这个查询中使用联合而不是内部连接或其他东西的事实。这个问题是关于为什么联合查询不能按预期工作。