FK列可能为null或其他值不是父表中的PK。SQL查询从父表中没有父项的子表中获取记录?
0
A
回答
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;
相关问题
- 1. SQL查询获取具有子记录列表的父表的记录
- 2. SQL查询找到没有子记录的父记录。子和父记录都在同一张表上
- 3. Linq to sql从父子表中获取记录
- 4. SQL查询从表中获取记录
- 5. 没有父母的sql列表记录
- 6. SQL父子表查询
- 7. SQL查询根父子记录
- 8. 需要使用SQL查询来查找没有子记录的父记录
- 9. 如何在ElasticSearch中从父级子项获取子记录?
- 10. 如何从单个查询中的子表和父表中删除记录?
- 11. 在单个查询(MySQL)中获取父 - 子的有序列表
- 12. Sql获取父项的所有子项
- 13. 在父子表中获取父级ID?
- 14. mysql在单个查询中获取父和子记录
- 15. 从查询表中获取所有记录的单个查询
- 16. 从Qtreeview的父项中获取子项
- 17. 基于关系表从父表中获取记录 - CoreData
- 18. hibernate从父项中删除子项需要获取父项的所有子项?
- 19. 更新父项及其所有记录中的子项sql
- 20. SQL获得从父记录,其中父表有关系和有共同的项目与其他家长
- 21. ElasticSearch从父项中获取子项
- 22. Oracle SQL更新父记录取决于同一个表中的子记录
- 23. 获取包含SQL中所有记录的表的查询
- 24. 从其父项中分离子查询
- 25. 如何从SQL中的子查询中的父查询引用表列?
- 26. 查询获取父母的子女记录
- 27. 使用父项和子项从表中获取值
- 28. SQL查询父子
- 29. 从MySql中的不同表中获取父和子记录(一对多)
- 30. 从父表中选择所有记录假设子项中存在的东西
提示:'NOT EXISTS'或'LEFT JOIN'。 –
你尝试过什么吗? – Aleksej