如果给定列没有值,则 MYSQL 合并为一列

标签 mysql sql

如果给定列 (year_id) 没有值 (null),我如何将两列合并为一列

表 1

id    txt      year_id      date
----------------------------------
1     text1      1
2     text2      2
3     text3      3
4     text4               2013-01-02
5     text5               2013-01-03

表2

id    year     
----------------
1     2009     
2     2010      
3     2011     
4     2012

我需要这样的结果

id    txt      merge_column   
-------------------------
1     text1      2009
2     text2      2010
3     text3      2011
4     text4   2013-01-02
5     text5   2013-01-03

提前谢谢你,这个查询让我的头脑复杂化了..谢谢

最佳答案

首先使用 COALESCE()IFNULL() 连接两个表。

SELECT  a.id,
        a.txt,
        COALESCE(b.year, a.date) merge_column
FROM    table1 a
        LEFT JOIN table2 b
            ON a.year_id = b.id

关于如果给定列没有值,则 MYSQL 合并为一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704651/

相关文章:

mysql - 如何将多行添加到多个引用

mysql - SQL:空列计数不正确

java - 使用来自两个不同数据库的两个表通过 JOOQ 构建左连接查询

mysql - 使用各方扮演的各种角色来实现 'party model' 的正确方法是什么?

java - 结果集耗尽的异常一次又一次发生

mysql - 捕获 MySQL 错误

php - SQL 无法正确处理用户创建的变量

mysql - 在触发器中声明和使用变量

mysql - 如何为表中的每一行运行特定的 sql 查询?

java - Android 游标不返回选择查询的行