MySQL高级性能优化---JOIN连接

1. 先准备测试表数据

创建两种表部门表(department)和员工表(employee)
在这里插入图片描述
在这里插入图片描述

2. 内连接

2.1 作用

查询两张表的共有部分
在这里插入图片描述

2.2 语句

Select <select_list> from tableA A Inner join tableB B on A.key = B.key

select * from employee e INNER JOIN department d on e.dep_id = d.id 

在这里插入图片描述

3. 左连接与右连接

以左连接举例

3.1 作用

把左边表的内容全部查出,右边表只查出满足条件的记录
在这里插入图片描述

3.2 语句

Select <select_list> from tableA A left join tableB B on A.key = B.key

select * from employee e LEFT JOIN department d on e.dep_id = d.id 

在这里插入图片描述

4. 查询左表独有数据和查询右表独有数据

以左连接举例

4.1 作用

在这里插入图片描述

4.2 语句

Select <select_list> from tableA A left join tableB B on A.key = B.key WHERE B.key is NULL

select * from employee e LEFT JOIN department d on e.dep_id = d.id where d.id is NULL

在这里插入图片描述

5. 全连接

5.1 作用

查询两张表的所有信息
在这里插入图片描述

5.2 语句

Select <select_list> from tableA A Full Outter join tableB B on A.key = B.key
mysql不支持full outter join, 下边的mysql全连接的另一种写法

select * from employee e LEFT JOIN department d on e.dep_id = d.id
UNION
select * from employee e RIGHT JOIN department d on e.dep_id = d.id

在这里插入图片描述

6. 查询左右表各自独有的数据

5.1 作用

查询两张表独有的数据
在这里插入图片描述

5.2 语句

select * from employee e LEFT JOIN department d on e.dep_id = d.id where d.id is null
UNION
select * from employee e RIGHT JOIN department d on e.dep_id = d.id where e.id is null

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值