下面是数据集
Table1
col1,col2
key1,k1
key2,k2
key3,k3
Table2
col1,col3
key1,k11
key2,k22
key4,k44
Table3
col1,col4
key1,k111
key2,k222
key5,k555
我需要基于col1联接3个表。下面是我的问题
从表1 a全外接表2 b全外接表3 c中选择a.col1、a.col2、b.col3、c.col4;
预期输出如下所示
预期产量:
col1,col2,col3,col4
key1,k1,k11,k111
key2,k2,k22,k222
key3,k3, ,
key4, ,k44,
key5, , ,k555
2条答案
按热度按时间uxhixvfz1#
根据您想要的结果,您需要联接col1上的所有表。
为了确保col1中始终有一个值,需要
coalesce
将它们放在一起(coalesce将为您提供第一个非空值)。要将其他列缝合在一起(并用空格替换null,请将coalesce与
concat
:综合起来:
vshtjzan2#
既然您正在进行完全的外部连接,那么这样做将是一个好主意
COALESCE
对于列col1
比如:为了避免结果集中的笛卡尔积,我们还需要有连接条件。