这些是相当基本的陈述。我有一个链接到另一个表中的项目的图形列表。我想检查有多少图形没有使用,理论上可以删除。
所以首先我使用了 NOT IN 子句:
SELECT [GraphicNr]
,[Graphicfile]
FROM [dbo].[Graphic]
WHERE graphicnr NOT IN (SELECT graphicnr FROM dbo.Komp)
结果为零,这对我来说似乎很奇怪。将其重写为 NOT EXISTS 后,我得到了大约 600 个结果:
SELECT [GraphicNr]
,[Graphicfile]
FROM [dbo].[Graphic] a
WHERE NOT EXISTS (SELECT graphicnr FROM dbo.komp b WHERE a.GraphicNr = b.GraphicNr)
所以我想我真的没有问题,因为第二个语句有效,但据我了解,第一个语句不应该给出相同的结果吗?