如果给定列(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
提前谢谢,这个查询使我的思绪变得复杂..谢谢
答案 0 :(得分:3)
首先使用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
答案 1 :(得分:1)
SELECT t1.id, txt, IFNULL(date, year) merge_column
FROM table1 t1
LEFT JOIN table2 t2 ON t1.year_id = t2.id
答案 2 :(得分:0)
您需要将值转换为常用类型。我认为字符串最有可能。
select t1.id, t1.txt,
coalesce(date_format(t2.date, '%y-%m-%d'), cast(t2.year as varchar(32))
from table1 t1 left join
table2 t2
on t1.year_id = t2.id