【发布时间】:2014-09-03 11:05:03
【问题描述】:
我有一个表 FilesContainsFiles,它是一个连接表:
- FilesContainsFiles(IDContainerFile, IDContentFile)
我想知道哪些包含的文件只包含在特定的容器文件中。
例如,我有一个包含 file01 和 file02 的 fileA 和一个包含 file01 的 fileB。
我想知道哪些文件只包含在fileA中。所以有了 NOT IN 我有:
select * from FilesContainsFiles
where IDContentFile NOT IN(
select IDContentFile from FilesContainsFiles
where IDContentFile IN(select IDContentFile
from FilesContainsFiles where IDContainerFile NOT IN (64)))
注意:我使用 NOT IN 和 IN 是因为我想指定多个 fileContainer。我只能对一个容器使用相等的比较。
但是,当我尝试使用 NOT EXISTS 并且没有得到结果时。我尝试这样的事情:
select * from FilesContainsFiles
where NOT EXISTS(select * from FilesContainsFiles where IDContainerFile <> 64)
是否可以使用 NOT EXISTS 代替 NOT IN?
谢谢。
【问题讨论】:
标签: sql not-exists