MySQL:将两行合并为一行?

时间:2019-11-12 14:17:46

标签: mysql sql join self-join

如何将同一张表中的两行合并为一行以避免空字段?例如,如果我有以下两行:

id col1 col2 col3
 1   12   null 13  
 2   56   74   89

我想得到结果:

1 12 74 13

换句话说,我想要id = 1的行中的值,但是如果它具有null值,我想用id = =的行中的相应值替换那些null 2.我猜另一个约束是该表中的列数很大,因此我要避免列出各个列。 MySQL完全有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用left join

select coalesce(t.col1, t2.col1) as col1,
       coalesce(t.col2, t2.col2) as col2,
       coalesce(t.col3, t2.col3) as col3       
from t left join
     t t2
     on t2.id = 2
where t.id = 1