2017-05-25 141 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; 
相关问题