我有两个表,其中一些条目相同,例如 表A:
ID value type
1 1 2
2 3 2
3 3 2
表B:
ID value type
2 3 1
3 3 1
4 1 1
我想合并它们,以便生成的表看起来像
表C:
ID value type
2 3 2
3 3 2
4 1 1
即,删除不在表A中的行,在表A中显示具有表A类型的重复行,并显示那些不在表A中的行。
直到现在我已经完成了UNION命令来删除重复的
select * from table A union select * from table B
但如何从表A中获取类型?可以这样做,或者我必须单独更新它们。
答案 0 :(得分:1)
您可以使用LEFT JOIN
:
SELECT b.id,b.value,
COALESCE(a.type,b.type) as type
FROM TableB b
LEFT JOIN TableA a
ON(a.id = b.id)
答案 1 :(得分:1)
这就是你想要的
select b.id, b.value, ifnull(a.type,b.type) as type
from b
left join a
on b.id = a.id;