mysql left join、right join、inner join、union、union all使用以及图解

左外连接:left join

sql语法:LEFT JOIN = LEFT OUTER JOIN

首先需要创建两张表做测试,表数据如下所示

table 1 表:mysql left join、right join、inner join、union、union all使用以及图解_第1张图片
table2 表:mysql left join、right join、inner join、union、union all使用以及图解_第2张图片
查询sql:

select * from table1 a LEFT JOIN table2 b on a.id=b.id 

mysql left join、right join、inner join、union、union all使用以及图解_第3张图片
总结:
mysql left join、right join、inner join、union、union all使用以及图解_第4张图片
查询sql:

select a.id as aid, b.id as bid from table1 a LEFT JOIN table2 b on a.id=b.id where b.id is null 

mysql left join、right join、inner join、union、union all使用以及图解_第5张图片
mysql left join、right join、inner join、union、union all使用以及图解_第6张图片

右外连接:right join

sql语法:RIGHT JOIN = RIGHT OUTER JOIN

查询sql:

select * from table1 a RIGHT JOIN table2 b on a.id=b.id 

mysql left join、right join、inner join、union、union all使用以及图解_第7张图片
总结:

mysql left join、right join、inner join、union、union all使用以及图解_第8张图片
查询sql:

select a.id as aid, b.id as bid from table1 a RIGHT JOIN table2 b on a.id=b.id where a.id is null 

mysql left join、right join、inner join、union、union all使用以及图解_第9张图片
mysql left join、right join、inner join、union、union all使用以及图解_第10张图片

内连接:inner join

查询sql:

select a.id as aid, b.id as bid from table1 a INNER JOIN table2 b on a.id=b.id

mysql left join、right join、inner join、union、union all使用以及图解_第11张图片
mysql left join、right join、inner join、union、union all使用以及图解_第12张图片

联合查询:union 和 union all

union:用来聚合两个查询结果,并去除重复数据
union all:聚合查询结果,不去重

select * from table1 UNION select * from table2

mysql left join、right join、inner join、union、union all使用以及图解_第13张图片

select * from table1 UNION ALL select * from table2

mysql left join、right join、inner join、union、union all使用以及图解_第14张图片

你可能感兴趣的:(数据库)