Sql server SQL Server-同一列上同一表的两个联接
我很好奇是否可以连接两个表来接收下面的内容Sql server SQL Server-同一列上同一表的两个联接,sql-server,Sql Server,我很好奇是否可以连接两个表来接收下面的内容 **superTable** id | project 1 aaa 2 bbb **approvedTable** id | statusStep | Emp 1 BossMan Gregor 1 FirstMate Hans **notApprovedTable** id | statusStep | Emp 1 Sailor Julia 1 Sr.
**superTable**
id | project
1 aaa
2 bbb
**approvedTable**
id | statusStep | Emp
1 BossMan Gregor
1 FirstMate Hans
**notApprovedTable**
id | statusStep | Emp
1 Sailor Julia
1 Sr.Sailor Dave
我希望将“approvedTable”和“notApprovedTable”这两个表都加入id上的superTable,以获得类似的内容
id | project | approvedStep | Emp | notApprovedStep | Emp
1 aaa BossMan Gregor null null
1 aaa FirstMate Hans null null
1 aaa null null Sailor Julia
1 aaa null null Sr.Sailor Dave
如果我做一个简单的连接,创建如下内容
id | project | approvedStep | Emp | notApprovedStep | Emp
1 aaa BossMan Gregor Sailor Julia
1 aaa FirstMate Hans Sailor Julia
1 aaa BossMan Gregor Sr.Sailor Dave
1 aaa FirstMate Hans Sr.Sailor Dave
工会可能会帮助你
SELECT s.ID,s.project,a.statusStep approvedStep,a.Emp,NULL AS notApprovedStep, NULL AS notApprovedEmp
FROM superTable s
INNER JOIN approvedTable a ON s.ID=a.ID
UNION
SELECT s.ID,s.project,NULL AS approvedStep,NULL AS Emp,na.statusStep AS notApprovedStep,na.Emp AS notApprovedEmp
FROM superTable s
INNER JOIN notApprovedTable na ON s.ID=na.ID
两个查询的结果与
UNION ALL
粘合:
select s.id, s.project,
a.statusstep as approved_step, a.emp as approved_emp,
null as not_approved_step, null as not_approved_emp
from supertable s
join approvedtable a on a.id = s.id
union all
select s.id, s.project,
null as approved_step, null as approved_emp,
na.statusstep as not_approved_step, na.emp as not_approved_emp
from supertable s
join notapprovedtable na on na.id = s.id