2017-05-25 235 views

回答

0

你可以試試這個

Select * from child_table where FK not in (select PK from parent_table) 
0

試試這個

SELECT ChildTable.ParentID 
    FROM ChildTable 
    WHERE NOT EXISTS (
    SELECT 1 FROM ParentTable 
    WHERE ChildTable.ParentID = ParentTable.ParentID 
    ) 
0

您可以使用LEFT JOIN得到預期的結果。

請樣本數據是指以下工作實施例:

DECLARE LOCAL TEMPORARY TABLE ParentTable TABLE (Id INT IDENTITY(1,1) , [Name] VARCHAR (100)); 

DECLARE LOCAL TEMPORARY TABLE ChildTable TABLE (Id INT IDENTITY(1,1), ParentId INT NULL, [Value] VARCHAR (50)); 

INSERT INTO ParentTable VALUES ('Name 001'), ('Name 002'), ('Name 003'); 

INSERT INTO ChildTable VALUES (1, 'Val 01'), (2, 'Val 02'), (NULL, 'Val 03'), (4, 'Val 04'); 

SELECT C.* 
FROM ChildTable C 
LEFT JOIN ParentTable P ON P.Id = C.ParentId 
WHERE P.Id IS NULL; 
相關問題