Mysql从两个表中选择,获取所有数据,如果不存在则num 0

标签 mysql join select

表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/

相关文章:

php - 如何根据第一个条件结果对 Laravel 查询构建器进行排序

php - MySQL 到 Oracle 帮助

mysql - 对连接表进行带有连接和 'where' 语句的子查询

mysql - 如何根据条件删除结果以计算平均值

angular - 无法在 Angular 多重选择中预选值

mysql - 表中单行的SELECT索引

sql - mysql查询将行数据动态转换为列

join - 如何在 HIVE 中连接两个表。

mysql - 使用多个 WHERE 条件从表中检索多个值

MySQL - 在两个不同的表上进行计算和求和