我有两行:
SELECT
我想进行user_id
调用,当NULL
不是id title format region discs user_id origin_id
-----------------------------------------------------------------------
2 Twelve Monkeys DVD NULL 1 2 1
时,该调用始终会返回数据。以下是我要寻找的结果:
format
正如您所看到的那样,id 1
因NULL
id 2
而被填$email = array('email' => Input::get('email'));
,但其他所有内容都是从ID 2填充的。
可以为我做这件事的MySQL声明是什么?
答案 0 :(得分:1)
对于您的指定数据,您可以使用left join
和coalesce()
来确定值的优先级:
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;