如何在SQL查询中将两个关联表的对应字段合并为单个返回列
解法
你可以使用COALESCE函数实现两个关联字段的合并,该函数会返回参数列表中第一个非空结果,正好适配你当前左连接后同一行只有一个关联表字段有值的场景。
最终SQL语句
SELECT t1.app_id, COALESCE(t2.info, t3.app_info) AS information FROM Table1 AS t1 LEFT JOIN Table2 AS t2 ON t1.app_id = t2.app_id LEFT JOIN Table3 AS t3 ON t1.app_id = t3.app_id
补充说明
你原有的左连接逻辑无需修改,只需要在查询字段部分用COALESCE合并t2.info和t3.app_info,并重命名为information即可。如果你的SQL运行环境不支持COALESCE,也可以用通用的CASE WHEN语句实现相同效果:
SELECT t1.app_id, CASE WHEN t2.info IS NOT NULL THEN t2.info ELSE t3.app_info END AS information FROM Table1 AS t1 LEFT JOIN Table2 AS t2 ON t1.app_id = t2.app_id LEFT JOIN Table3 AS t3 ON t1.app_id = t3.app_id
内容的提问来源于stack exchange,提问作者Fae Fen
相关产品推荐
相关产品推荐

