2015-06-18 95 views
-1

我想選擇我的數據庫中不存在的子查詢中的所有記錄。SQL選擇哪裏不是在選擇語句

出於某種原因,即使子查詢它自己返回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' 
) 
+0

[未另一個表,SQL Server查詢選擇行]的可能重複(http://stackoverflow.com/questions/8165534/select-rows-not-in-another-table-sql-server-查詢) – Palpatim

回答

2

這更好地寫成相關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 
    )