mysql数据库之内连接、左外连接、右外连接

52 篇文章 2 订阅
23 篇文章 0 订阅
本文介绍了数据库查询中的不同连接类型,包括内联接(InnerJoin)、左外联接(LeftOuterJoin)和右外联接(RightOuterJoin)的概念和使用方法,以及自连接的应用,展示了如何在SQL中实现这些连接来获取所需的数据。
摘要由CSDN通过智能技术生成

一、内联接(Inner Join):匹配2张表中相关联的记录。

1、隐式内连接。

select 字段列表 from 表1,表2  where 条件......;

示例:查询每一个员工的姓名以及关联的部门名称。

梳理:表结构:emp,dept。连接条件:emp.dept_id=dept.id

select emp.name,dept.name from emp,dept where emp.dept_id=dept.id;

给表起别名

select e.name,d.name from emp e,dept d where e.dept_id=d.id;

2、显示内连接。

select 字段列表 from 表1 [INNER]JOIN  表2 ON 连接条件......;

示例:查询每一个员工的姓名以及关联的部门名称。

梳理:表结构:emp,dept。连接条件:emp.dept_id=dept.id

#显示内连接中inner关键字可省略
select e.name,d.name from emp e inner join dept d on e.dept_id=d.id;

二、左外联接(Left Outer Join):除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记录,右表中未匹配到的字段用NULL表示。

select 字段名称 from 表1 LEFT [OUTER] JOIN 表2 ON 条件......;

示例:查询emp表中的所有数据,和对应的部门信息。

梳理:表结构:emp,dept。连接条件:emp.dept_id=dept.id

select e.*,d.name from emp e LEFT [OUTER] JOIN dept d ON emp.dept_id=dept.id;

三、右外联接(Right  Outer  Join):除了匹配2张表中相关联的记录外,还会匹配右表中剩余的记录,左表中未匹配到的字段用NULL表示。

select 字段名称 from 表1 RIGHT  [OUTER] JOIN 表2 ON 条件......;

#右外连接
select e.*,d.*  from emp e RIGHT  [OUTER] JOIN dept d ON e.dept_id=d.id;
#改为左外连接
select e.*,d.*  from dept d LEFT  [OUTER] JOIN emp e ON e.dept_id=d.id;

四、自连接:可以是内连接查询,也可以使外连接查询。

select 字段列表 from 表A 别名A JOIN 表A 别名B  ON  条件......;

示例1:查询员工及其所属领导的名字。

 select a.name,b.name from emp a,emp.b  where a.managerid=b.id;

示例2:查询员工及其所属领导的名字,员工没有领导也要查出来。

 select a.name ‘员工’,b.name ‘领导’ from emp a left join emp.b on a.managerid=b.id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小格子衬衫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值