![](/img/trans.png)
[英]SQL Query to get records of parent table that have a list of child records
[英]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.