常见的join操作

本文详细介绍了在数据库中,通过实验数据的部门表和员工表进行7种join操作,包括内连接、左连接、右连接、A表独有的部分、B表独有的部分以及全连接和各自独有的组合查询。这些操作有助于理解不同场景下的数据整合策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

有时候为了得到完整的结果,我们需要对两个及其以上的表进行操作,所以本文就几种常见的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;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值