SQL select select select语句中的位置

时间:2015-06-18 18:33:56

标签: sql sql-server-2008-r2

我正在尝试选择数据库中子查询中不存在的所有记录。

由于某种原因,即使子查询返回2000左右的行并且主查询返回超过5000,它也不返回任何内容。我需要子查询中未包含的所有记录

SELECT ID
FROM PART
WHERE NOT ID IN 
(
SELECT DOCUMENT_ID AS ID
FROM USER_DEF_FIELDS
WHERE PROGRAM_ID = 'VMPRTMNT' AND ID = 'UDF-0000029'
)

1 个答案:

答案 0 :(得分:3)

这更好地写为相关的NOT EXISTS子查询。

SELECT ID
  FROM PART
 WHERE NOT EXISTS 
    (
        SELECT 1
        FROM USER_DEF_FIELDS
        WHERE PROGRAM_ID = 'VMPRTMNT' 
          AND ID = 'UDF-0000029'
          AND DOCUMENT_ID = PART.ID
    )