SQL的四种连接 ——内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)

在数据库中建立两张表,分别是 user 和 u

user表:
在这里插入图片描述
u表
在这里插入图片描述
关联字段user.u_idu.parent_id来演示一下MySQL的 内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)

内连接

  • 关键字:inner join on
  • sql语句: select user.*,u.* from user inner join u on user.u_id=u.parent_id
  • 运行结果:
    在这里插入图片描述
    • 分析:
      内连接就是找两个表的交集

左连接(左外连接)

  • 关键字:left join on
  • sql语句: select user.*,u.* from user left join u on user.u_id=u.parent_id
  • 运行结果:

在这里插入图片描述

  • 分析
    左连接是以左边的表的数据为主,匹配右边表的数据。

右连接(右外连接)

  • 关键字:right join on

  • sql语句: select user.*,u.* from user right join u on user.u_id=u.parent_id

  • 运行结果:
    在这里插入图片描述

  • 分析
    左连接是以右边的表的数据为主,匹配左边表的数据。

全连接(全外连接)

  • 关键字:full join on
  • sql语句: select user.*,u.* from user full join u on user.u_id=u.parent_id

mysql不支持全连接!!!
但是!!!可以用别的方法实现全连接
使用左连接 结合 右连接 实现 全连接!!!

在这里插入图片描述

  • 26
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当我们在处理数据库的多个表时,连接操作是非常常见的。SQL有几种连接类型,包括左连接右连接内连接外连接。 1. 左连接(Left Join): 左连接返回左表的所有记录,以及与左表匹配的记录。如果没有匹配的记录,则返回NULL值。 左连接的语法如下: ``` SELECT 列名 FROM 左表 LEFT JOIN 表 ON 连接条件; ``` 相关问题: 1. 什么是左连接? 2. 左连接的语法是什么? 3. 左连接返回的结果是什么? 2. 右连接(Right Join): 右连接返回的所有记录,以及左表表匹配的记录。如果左表没有匹配的记录,则返回NULL值。 右连接的语法如下: ``` SELECT 列名 FROM 左表 RIGHT JOIN 表 ON 连接条件; ``` 相关问题: 1. 什么是右连接? 2. 右连接的语法是什么? 3. 右连接返回的结果是什么? 3. 内连接(Inner Join): 内连接返回两个表满足连接条件的记录。只有在两个表都存在匹配的记录时,才会返回结果。 内连接的语法如下: ``` SELECT 列名 FROM 表1 INNER JOIN 表2 ON 连接条件; ``` 相关问题: 1. 什么是内连接? 2. 内连接的语法是什么? 3. 内连接返回的结果是什么? 4. 外连接(Outer Join): 外连接包括左外连接外连接,它返回两个表满足连接条件的记录,以及未匹配的记录。 左外连接返回左表的所有记录,以及与左表匹配的记录。如果没有匹配的记录,则返回NULL值。 外连接返回的所有记录,以及左表表匹配的记录。如果左表没有匹配的记录,则返回NULL值。 外连接的语法如下: ``` SELECT 列名 FROM 左表 LEFT JOIN 表 ON 连接条件; SELECT 列名 FROM 左表 RIGHT JOIN 表 ON 连接条件; ``` 相关问题: 1. 什么是外连接? 2. 外连接的语法是什么? 3. 外连接返回的结果是什么?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值