Tim*_*ord 4 t-sql sql-server union parent-child
我有一个父表和子表,并希望创建一个select语句,给定父ID,返回该父项的行和每个子项的其他行.当存在一个或多个子节点时,执行左连接并不会为父提供一行.我知道这可以通过UNION完成,但我正在寻找一种不使用union语句的解决方案.这可能吗?
[父表]
ID Name
-------------
1 | Bob
Run Code Online (Sandbox Code Playgroud)
[儿童表]
ID ParentId Name
-----------------------
1 | 1 | Jim
2 | 1 | Ned
Run Code Online (Sandbox Code Playgroud)
查询结果我正在寻找:
Parent_Name Child_Name
---------------------------
Bob | NULL <- I need this null here
Bob | Jim
Bob | Ned
Run Code Online (Sandbox Code Playgroud)
有一个肮脏的DIRTY黑客:
SELECT
P2.Name Parent_Name,
C.Name Child_Name
FROM [Parent Table] P1
FULL OUTER JOIN [Child Table] C
ON 1=0
INNER JOIN [Parent Table] P2
ON IsNull(P1.ID,C.ParentId) = P2.ID
WHERE P2.ID = *ID here*
Run Code Online (Sandbox Code Playgroud)
这应该给你想要的结果......希望如此.
归档时间: |
|
查看次数: |
1930 次 |
最近记录: |