一句话讲明白什么是左连接,右连接,内连接和全连接

本文深入解析SQL中常见的四种连接类型:内连接、左连接、右连接和全连接,通过实例展示每种连接的使用方式及应用场景。

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

之前看到一些资料,讲这个问题的时候太复杂而且有歧义,不容易彻底明白是怎么回事,

 

其实这个内连接、左连接、右连接、全连接很简单,一句话的事,其它的连接不知道是什么,更不常用了,先不提。

我来讲一下这些,很简单的。

内链接就是普通的查询,例如select * from tz a,  tzbb b where a.id = b.id.

内连接写法不一样,用了inner join 和 on 来代替以上写法,功能是一样的。


左连接呢,就是上面这个查询,查询完结果后,左边的id还有没匹配到的,则一块列出,例如查询结果是四条数据,左边的表还有一条数据匹配不上,则一块列出:

 

LastNameFirstNameOrderNo
AdamsJohn22456
AdamsJohn24562
CarterThomas77895
CarterThomas44678
BushGeorge 

 

  

右连接呢,正好和左连接相反。


全连接呢,就是匹配完后,左边没匹配过的和右边没匹配过的项统统都来,凑个热闹,例左边剩一项,右边剩一项:

LastNameFirstNameOrderNo
AdamsJohn22456
AdamsJohn24562
CarterThomas77895
CarterThomas44678
BushGeorge 
  34764


 

### 数据库连接类型的区别 在数据库查询中,不同的连接类型用于将多个表的数据组合在起。以下是左连接连接全连接内连接的详细区别: #### 1. 内连接(Inner Join) 内连接返回两个表中满足连接条件的所有行。只有当两个表中的数据匹配时,结果才会被返回。换句话说,它只返回交集部分的数据[^2]。 ```sql SELECT a.column1, b.column2 FROM table1 a INNER JOIN table2 b ON a.id = b.id; ``` #### 2. 左连接(Left Join 或 Left Outer Join) 左连接返回左表中的所有记录以及表中与之匹配的记录。如果表中没有匹配的记录,则返回 NULL 值。它确保左表中的所有数据都会出现在结果集中[^3]。 ```sql SELECT a.column1, b.column2 FROM table1 a LEFT JOIN table2 b ON a.id = b.id; ``` #### 3. 连接(Right Join 或 Right Outer Join) 连接返回表中的所有记录以及左表中与之匹配的记录。如果左表中没有匹配的记录,则返回 NULL 值。它确保表中的所有数据都会出现在结果集中[^3]。 ```sql SELECT a.column1, b.column2 FROM table1 a RIGHT JOIN table2 b ON a.id = b.id; ``` #### 4. 全连接(Full Join 或 Full Outer Join) 全连接返回左表表中的所有记录。如果某行在另个表中没有匹配的记录,则用 NULL 填充。它是左连接连接的结合,返回两个表的并集[^3]。 ```sql SELECT a.column1, b.column2 FROM table1 a FULL JOIN table2 b ON a.id = b.id; ``` ### 总结 - **内连接**:返回两个表中匹配的数据。 - **左连接**:返回左表的所有数据,以及表中匹配的数据;若无匹配,则为 NULL。 - **连接**:返回表的所有数据,以及左表中匹配的数据;若无匹配,则为 NULL。 - **全连接**:返回两个表的所有数据,无论是否匹配。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值