如何通过使用MySQL覆盖NULL值将两行合并为一行?

时间:2016-07-12 22:00:09

标签: mysql sql

我有两行:

SELECT

我想进行user_id调用,当NULL不是id title format region discs user_id origin_id ----------------------------------------------------------------------- 2 Twelve Monkeys DVD NULL 1 2 1 时,该调用始终会返回数据。以下是我要寻找的结果:

format

正如您所看到的那样,id 1NULL id 2而被填$email = array('email' => Input::get('email')); ,但其他所有内容都是从ID 2填充的。

可以为我做这件事的MySQL声明是什么?

1 个答案:

答案 0 :(得分:1)

对于您的指定数据,您可以使用left joincoalesce()来确定值的优先级:

select coalesce(t.id, t2.id) as id,
       coalesce(t.title, t2.title) as title,
       coalesce(t.format, t2.format) as format,
       coalesce(t.region, t2.region) as region,
       coalesce(t.discs, t2.discs) as discs,
       t.user_id
from t left join
     t t2
     on t2.user_id is null
where t.user_id is not null;