gpt4 book ai didi

sql - 如何从一个表和一个子表中进行选择

转载 作者:行者123 更新时间:2023-12-04 18:20:07 24 4
gpt4 key购买 nike

我在 SQL Server 中有如下两个表:

Table1
MainID Descrip
1 tree
2 dog
3 blah
4 etc

Table2
SubID MainID SubDescrip
1 2 rover
2 2 fido

当它具有匹配的 MainID 时,我希望能够从 Table1 和 Table2 中选择所有内容。

我想要的输出如下:
MainID Descrip SubID SubDescrip
1 tree NULL NULL
2 dog NULL NULL
2 dog 1 rover
2 dog 2 fido
3 blah NULL NULL
4 etc NULL NULL

我可以使用外连接获得所需输出的第二行以外的所有内容,但是如何获得第二行呢?

换句话说,这:
SELECT m.MainID, m.Descrip, s.SubID, s.SubDescrip
FROM Table1 m LEFT OUTER JOIN
Table2 s ON m.MainID = s.MainID
ORDER BY m.MainID, s.SubID

给我这个:
MainID Descrip SubID SubDescrip
1 tree NULL NULL
2 dog 1 rover
2 dog 2 fido
3 blah NULL NULL
4 etc NULL NULL

但我也想要这个:
 2 dog      NULL       NULL

最佳答案

使用 UNION

SELECT  m.MainID, 
m.Descrip,
s.SubID,
s.SubDescrip
FROM Table1 m
LEFT OUTER JOIN Table2 s
ON m.MainID = s.MainID
UNION
SELECT MainID,
Descrip,
NULL SubID,
NULL SubDescrip
FROM Table1
ORDER BY MainID, SubID

关于sql - 如何从一个表和一个子表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16295190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com