外连接合并列

Posted

技术标签:

【中文标题】外连接合并列【英文标题】:Outer Join merge column 【发布时间】:2018-03-05 10:20:27 【问题描述】:

我当前的查询涉及连接多个表,我正在使用完全外连接。但是,我的查询产生了多个同名的列。如何将结果合并为一列?

以下是我的查询示例

 Select table1.a,table1.b AS "chocolate",table2.b AS "chocolate"
 from table1
 full outer join table2 ON table1.c = table2.c
 WHERE table1.a > 100

但是该列将导致

a,chocolate,chocolate

提前致谢!

编辑:基本上我只是想将 inp_pages 和 art_pages 组合在一个列中

【问题讨论】:

你能分享一些示例数据和你想要达到的结果吗? 你想如何组合这两个列?例如,假设查询将dark chocolate 作为左表中巧克力列的值,将white chocolate 作为右表中的值。在这种情况下应该是什么组合值? @krokodilko 他们应该导致不同的行共享同一列,想知道是否可能 【参考方案1】:

CONCAT 功能似乎可以实现我想要的,谁能帮忙验证一下我的解决方案?

【讨论】:

【参考方案2】:

根据随附的屏幕截图,似乎两列中只有一列可以有值,而另一列始终为null。如果这是真的,您可以coalesce 将结果放在一个列中:

SELECT          table1.a, COALESCE(table1.b, table2.b) AS "chocolate"
FROM            table1
FULL OUTER JOIN table2 ON table1.c = table2.c
WHERE           table1.a > 100

【讨论】:

以上是关于外连接合并列的主要内容,如果未能解决你的问题,请参考以下文章

MySql表的内连和外连

SQL中有几种连接?有啥区别?(左连右连内连和外连?)

mysql数据库外连

ORA-01799: 列不能外连接到子查询

使用公式休眠@OneToOne - 列不能外连接到子查询

脱库&站库分离渗透&解决MySQL禁止外连