加入两个表 - Oracle
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加入两个表 - Oracle相关的知识,希望对你有一定的参考价值。
我有两个数据集:A和B.
数据集A:
indiv_id January
1000068000004 1
1000068000011 1
1000068000012 1
数据集B:
indiv_id March
1000068000003 1
1000068000011 1
1000068000015 1
期望的结果:
Indiv_id January March
1000068000003 null 1
1000068000004 1 null
1000068000011 1 1
1000068000012 1 null
1000068000015 null 1
我如何加入表格,以便我拥有BOTH列表中的所有Indiv_IDs
及其与特定数据集不同的列中的值?
谢谢
答案
你可以使用full join
:
select indiv_id, a.january, b.march
from a full join
b
using (indiv_id);
using
条款使这特别方便,因为你不需要担心coalesce()
中的任何select
s。
另一答案
您需要处理3个案例:ID在两个数据集中,ID仅在数据集A中,或者ID仅在数据集B中。您无法使用select ... from dataset_A left join dataset_B ...
解决这个问题,因为您将获得前两个但不是第三种情况。
您需要的是定义一个视图,为您提供跨两个数据集的所有ID,然后左连接到每个数据集:
with all_IDs as (select indiv_ID from dataset_A union select indiv_ID from dataset_B)
select indiv_ID, january, march
from all_IDs
left join dataset_A using (indiv_ID)
left join dataset_B using (indiv_ID)
以上是关于加入两个表 - Oracle的主要内容,如果未能解决你的问题,请参考以下文章