表a:
name
a
e
表b:
name num
a 10
b 20
c 30
我想要得到:
name num
a 10
b 20
c 30
e 0
我的sql语句是:
select c.name,
IFNULL (b.num,0) as 'num'
from
(select name from a
union
select name from b) c
left join b
on c.`name`=b.`name`
还有其他方法可以更简单地得到这个结果吗?
最佳答案
FULL OUTER JOIN can be achieve by below in mysql
SELECT a.name, IFNULL (b.num,0) as 'num' FROM a
LEFT OUTER JOIN b ON b.name = a.name
UNION
SELECT b.name, IFNULL (b.num,0) as 'num' FROM a
RIGHT OUTER JOIN b ON a.name = b.name
关于Mysql从两个表中选择,获取所有数据,如果不存在则num 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59463643/