sql - 左连接后合并列
问题描述
如何根据哪一列不为空,将 3 个返回值列合并为一列?
我的查询是:
SELECT val1,val2,val3
FROM db.table1 t1
LEFT JOIN db.table2 t2 ON t2.pk = t1.t2_fk
LEFT JOIN db.table3 t3 ON t3.pk = t1.t3_fk
解决方案
利用coalesce()
SELECT coalesce(val1,val2,val3) as va
FROM db.table1 t1
left join db.table2 t2
on t2.pk = t1.t2_fk
left join db.table3 t3
on t3.pk = t1.t3_fk
推荐阅读
- mysql - MySQL:从全名字段中提取名字或姓氏
- magento2 - Magento 2 观察者没有使用正确的语言环境进行翻译
- javascript - 在 html 表单中添加搜索字段
- c++ - CryptoPP 项目在另一台计算机上运行
- javascript - 复制文件时未找到 ASP .NET Core .glb 文件
- python - 从 .txt 文件分析构建字典
- vue.js - 使用 Quasar 框架在 iframe 中引用 HTML 文件
- mysql - MySQL从组的最后一行中减去第一行
- vue.js - Vue js - 商店分派后并非所有数据都显示
- c# - 为什么我收到状态为 500 的错误(内部服务器错误)