我现在有两张存储数据的桌子。它们是由ID值关联的。如何返回表1中的所有值,包括主值,即使它有匹配。这是我的基本查询。
Select MFG.mfgname, SS.subsysname
From Manufacturers MFG left join SubSystem SS
On MFG.id = SS.mfgid
Order by MFG.mfgname, SS.subsysname这是桌子
MFG Table
id mfgname
1 ABB
2 Siemens
3 Vipa
4 Visolux
SubSystem table
id mfgid subsysname
1 1 ABB Drives
2 1 ABB Robots
3 1 Advant OCS
4 2 Simatic S5
5 2 Simatic S7
6 3 Vipa System最后给出了结果和期望的结果。
Results
mfgname subsysname
ABB ABB Drives
ABB ABB Robots
ABB Advant OCS
Siemens Simatic S5
Siemens Simatic S7
Vipa Vipa System
Visolux NULL
Desired Results
mfgname subsysname
ABB NULL
ABB ABB Drives
ABB ABB Robots
ABB Advant OCS
Siemens NULL
Siemens Simatic S5
Siemens Simatic S7
Vipa NULL
Vipa Vipa System
Visolux NULL所需的结果还将返回ABB、Siemens和Vipa mfgs的空子系统名称。现在没有了。希望这是有意义的!
发布于 2016-04-12 18:42:35
您应该能够使用UNION来完成这个任务。
SELECT MFG.mfgname,
SS.subsysname
FROM Manufacturers MFG
LEFT JOIN SubSystem SS ON MFG.id = SS.mfgid
UNION
SELECT MFG.mfgname,
NULL
FROM Manufacturers MFG
ORDER BY MFG.mfgname,
SS.subsysnamehttps://stackoverflow.com/questions/36581453
复制相似问题