我有一个表,即FilesContainsFiles,它是一个联接表:
我想知道哪些包含的文件仅包含在特定的容器文件中。
例如,我有包含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?
谢谢。
我认为您的IN
查询可以写成
select * from FilesContainsFiles
where IDContentFile NOT IN(select IDContentFile
from FilesContainsFiles where IDContainerFile <> 64)
和EXISTS
版本为
select * from FilesContainsFiles fcf
where NOT EXISTS (select * from
FilesContainsFiles fcf2
where IDContainerFile <> 64
and fcf.IDContentFile = fcf2.IDContentFile)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句