常见的join操作


前言

有时候为了得到完整的结果,我们需要对两个及其以上的表进行操作,所以本文就几种常见的join操作进行了总结。


在这里插入图片描述

一、实验数据

两张表:部门表与员工表

  • 部门表
    在这里插入图片描述
  • 员工表

在这里插入图片描述

二、7种情况

情况1

查询两张表共有的部分

 select * from tbl_dept a 
    -> inner join 
    -> tbl_emp b
    -> on 
    -> a.id = b.deptId;

在这里插入图片描述

情况2(Left Join)

查询A表独有且A、B两表共有的部分

 select * from tbl_dept a 
    -> left join 
    -> tbl_emp b
    -> on 
    -> a.id = b.deptId;

在这里插入图片描述

情况3(Right Join)

查询B表独有且A、B两表共有的部分

select * from tbl_dept a 
    -> right join 
    -> tbl_emp b 
    -> on 
    -> a.id = b.deptId;

在这里插入图片描述

情况4

A表独有的部分

select * from tbl_dept a 
    -> left join 
    -> tbl_emp b 
    -> on a.id = b.deptId 
    -> where 
    -> b.deptId is null;

在这里插入图片描述

情况5

B表独有的部分

select * from tbl_dept a 
    -> right join 
    -> tbl_emp b 
    -> on 
    -> a.id = b.deptId 
    -> where 
    -> a.id is null;

在这里插入图片描述

情况6 (Full Join)

A、B两表的全部
PS:mysql不支持全链接,故使用union关键字

select * from tbl_dept a left join tbl_emp b on a.id=b.deptId 
    -> union 
    -> select * from tbl_dept a right join tbl_emp b on a.id=b.deptId;

在这里插入图片描述

情况7

A表独有的部分和B表独有的部分

select * from tbl_dept a left join tbl_emp b on a.id = b.deptId where b.deptId is null 
union  
select * from tbl_dept a right join tbl_emp b on a.id = b.deptId where a.id is null;

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值