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. Linq to sql从父子表中获取记录
- 3. SQL查询从表中获取记录
- 4. 没有父母的sql列表记录
- 5. SQL父子表查询
- 6. SQL查询根父子记录
- 7. 如何从单个查询中的子表和父表中删除记录?
- 8. 在单个查询(MySQL)中获取父 - 子的有序列表
- 9. Sql获取父项的所有子项
- 10. 在父子表中获取父级ID?
- 11. 从查询表中获取所有记录的单个查询
- 12. hibernate从父项中删除子项需要获取父项的所有子项?
- 13. 更新父项及其所有记录中的子项sql
- 14. Oracle SQL更新父记录取决于同一个表中的子记录
- 15. 从MySql中的不同表中获取父和子记录(一对多)
- 16. SQL查询父子
- 17. 从父表中选择所有记录假设子项中存在的东西
- 18. SQL:使用公用表表达式递归获取父记录
- 19. SQL查找具有多个父记录的子项
- 20. 在SQL中选择所有子项的父记录
- 21. SQL查询获取所有帐户表记录和它的子记录
- 22. SQL中的父级子记录关系?
- 23. 链接表中的父和子记录的SQL连接
- 24. 在LINQ中查找带有子项的父记录
- 25. 记录没有从SQL查询中的数据库中提取
- 26. SQL查询来获取所有不同的项目最新记录表中的
- 27. 返回父记录时有效获取子记录的计数
- 28. 最有效的查询从IDS表中获取记录
- 29. 单个SQL查询来选择从父表中的记录只有在子表中的所有它的记录具有价值
- 30. SQL查询 - 获取左表中的所有匹配记录和剩余记录
提示:'NOT EXISTS'或'LEFT JOIN'。 –
你尝试过什么吗? – Aleksej