首页 > 解决方案 > 使用 SELECT 查询将两张表合二为一,将两张表的记录保存在不同的列中

问题描述

我尝试使用 SELECT 查询将两个不同的表合并为一个。我尝试使用 JOIN 和 UNION,但两者都没有完全达到我想要的效果。请参阅下面的两个源表以及我的结果应该是什么样子。

表格1:

case_id | email_id | subject
1         E1         subject_1
2         E2         subject_2
3         E3         subject_3
3         E4         subject_4

表 2:

case_id | document_id | document_name
1         D1            document_1
1         D2            document_2
2         D3            document_3
3         D4            document_4

我想拥有属于案例 1 的所有文件和邮件

结果:

case_id | email_id | subject    | document_id | document_name
1         E1         subject_1    null          null
1         null       null         D1            document_1
1         null       null         D2            document_2

标签: sql

解决方案


一个从不匹配任何行的完整外连接:

select coalesce(t1.case_id, t2.case_id), ...
from t1 full outer join t2 on 0 = 1
where t1.case_id = 1 or t2.case_id = 1;

推荐阅读