簡體   English   中英

SQL查詢從子表中獲取記錄,該子表在父表中沒有父表?

[英]SQL Query to get records from a child table which does not have a parent in the parent table?

FK列可能為null或其他值(不是父表中的PK)。

你可以試試這個

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

嘗試這個

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

您可以使用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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM