【Mysql数据库面试01】内连接 左连接 右连接 全连接

【Mysql数据库】内连接 左连接 右连接 全连接

  • 0.准备
  • 1.内连接
    • 1.1 SQL(不带where)
    • 1.2 SQL(带where)
    • 1.3总结
  • 2.左连接
    • 2.1SQL(不带where)
    • 2.2SQL(带where)
    • 2.3总结
  • 3.右连接
    • 3.1 SQL(不带where)
    • 3.2 SQL(带where)
    • 3.3 总结
  • 4.全连接
  • 实操一遍就明白了

0.准备

【Mysql数据库面试01】内连接 左连接 右连接 全连接_第1张图片

【Mysql数据库面试01】内连接 左连接 右连接 全连接_第2张图片

1.内连接

a和b的交集·

1.1 SQL(不带where)

SQL

---内连接
select  a.id,b.id
from a ,b 
where a.id = b.id
---效果和上面一样
select * 
from a inner join b on a.id = b.id

结果
【Mysql数据库面试01】内连接 左连接 右连接 全连接_第3张图片

1.2 SQL(带where)

SQL

select *
from a ,b 
where a.id = b.id and b.id = 2

结果
在这里插入图片描述
SQL

select * 
from a inner join b on a.id = b.id
where a.id in (1,2)

结果
【Mysql数据库面试01】内连接 左连接 右连接 全连接_第4张图片

1.3总结

内连接有两种形式,就是求交集;若有where条件,则在交集中进行过滤。

2.左连接

2.1SQL(不带where)

SQL

select * 
from a left join b on a.id = b.id

结果
【Mysql数据库面试01】内连接 左连接 右连接 全连接_第5张图片

2.2SQL(带where)

SQL

select * 
from a left join b on a.id = b.id
WHERE b.id <= 2

结果
【Mysql数据库面试01】内连接 左连接 右连接 全连接_第6张图片

2.3总结

左外链接,就是左表(这里是a)显示所有的数据;若是带有where,则在上一步的基础上进行过滤即可。

3.右连接

3.1 SQL(不带where)

SQL

---右连接
select *
from a right join b on a.id = b.id

结果
【Mysql数据库面试01】内连接 左连接 右连接 全连接_第7张图片

3.2 SQL(带where)

SQL

select *
from a right join b on a.id = b.id
where a.id = 1

结果
在这里插入图片描述

3.3 总结

右连接,是以右表为基表(b),右表所有的数据显示;若是带有where,则在上一步的基础上进行过滤即可。

4.全连接

就是求并集

select * 
from a
union
select * 
from b

【Mysql数据库面试01】内连接 左连接 右连接 全连接_第8张图片

实操一遍就明白了

你可能感兴趣的:(mysql,数据库,mysql,面试)