组合表而不联接的sql查询

1szpjjfi  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(265)

sql连接似乎总是合并数据,但我需要创建一个共享列名的不同表的报告。因此,对于一个表中的所有值,另一个表中的所有值都将为空,反之亦然。见附件

.
p、 我还是个新手-非常感谢你能帮我把这个问题/题目说得更恰当一些。

i2byvkas

i2byvkas1#

你在找一个 UNION ALL ```
select project, null as milestone, null as change
from projects
union all
select project, milestone, null as change
from milestones
union all
select project, null as milestone, change
from changes

两者的区别 `union` 以及 `union all` 后者不会删除输出中的重复行。
7rfyedvj

7rfyedvj2#

根据你的结果,你似乎想要:

select p.project, null as milestone, null as change
from projects p
where not exists (select 1 from milestones m where m.project = p.project) and
      not exists (select 1 from changes c where c.project = p.project)
union all
select m.project, m.milestone, null as change 
from milestones
union all
select c.project, null as milestone, c.change
from changes;

这是因为您的结果没有行:

A     NULL     NULL

所以你似乎只想和我吵架 projects 当其他表中没有相应的行时。

相关问题