SQL语句各种JOIN的区别

本文详细介绍了SQL中的四种连接类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)及全连接(FULL JOIN)。通过具体的数据库表数据和查询结果展示了不同连接方式的特点和应用场景。

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

数据库中的原表

---------------------------------------------------------------------

Persons表:

P_Id

name

address

1

张三丰

光明顶45号

2

李四光

中华路112号

3

王五龙

南京路8号

 

Orders表:

O_id

order_no

P_id

1

1111

3

2

1122

3

3

1134

1

4

1177

1

5

1200

5

 

 

内连接INNERJOIN(或者JOIN

---------------------------------------------------------------------

两个表中只有都满足条件的才显示,显示最少:

SELECT Persons.name, Orders.order_no FROMPersons INNER JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no

结果集:

name

order_no

王五龙

1111

王五龙

1122

张三丰

1134

张三丰

1177

 

 

左连接LEFTJOIN(或者LEFT OUTER JOIN

---------------------------------------------------------------------

左表中无论有没满足条件的都全显示,右表只有满足条件的才显示:

SELECT Persons.name, Orders.order_no FROMPersons LEFT JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no

结果集:

name

order_no

王五龙

1111

王五龙

1122

张三丰

1134

张三丰

1177

李四光

 

 

 

右连接RIGHTJOIN(或者RIGHT OUTER JOIN

---------------------------------------------------------------------

右表中无论有没满足条件的都全显示,左表只有满足条件的才显示:

SELECT Persons.name, Orders.order_no FROMPersons RIGHT JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no

结果集:

name

order_no

王五龙

1111

王五龙

1122

张三丰

1134

张三丰

1177

 

1200

 

 

全连接FULLJOIN(或者FULL OUTER JOIN

---------------------------------------------------------------------

两个表中只要有满足条件的都全显示,显示最多:

SELECT Persons.name, Orders.order_no FROMPersons FULL JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no

结果集:

name

order_no

王五龙

1111

王五龙

1122

张三丰

1134

张三丰

1177

 

1200

李四光

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值