关于SQL语句的左连接和右连接,内连接和外连接的区别

数据库版本为

mysql  Ver 14.14 Distrib 5.6.26, for Win64 (x86_64)

首先举个例子:(左连接和右连接)

现在我们有俩张表中内容如下。

我们使用左连接查询测试:
 

select A.*,B.* from A left outer join B on A.id1 = B.id2;

结果:查出的结果为,着重参考于左边的表。

1,如果左边的表中未出现的记录将不会出现在查询结果之中

2,如果右边的表没有,左边的表存在记录那么查询出来的结果的右边的内容为NULL,如图所示。

 

右连接的实例SQL:

 select A.*,B.* from A right outer join B on A.id1 = B.id2;


结果和上面类似。

 

内连接的结果如下所示:

我们可以看到内连接只打印公共的部分的结果。

它和我们不加inner的关键字的结果是一样的结果。

 

总结:

1,一般来说内连接和我们正常的自然联结一样。

2,外联结无法单独使用需要结合left 左联结或  right 右联结关键字一起使用。因为不指明左联结还是右联结,系统可能不知道着重参考那个表(对于不是公共的部分)。

 

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL中的左连接右连接是用来连接两个表的语句,它们以不同的方式返回匹配和非匹配的行。 左连接(Left Join):左连接返回左表中的所有行,以及右表中与左表中的行匹配的行。如果右表中没有匹配的行,则返回 NULL 值。 举例来说,假设有两个表 A 和 B,它们的结构如下: 表 A: | id | name | |----|------| | 1 | Tom | | 2 | Bob | | 3 | Ann | 表 B: | id | age | |----|-----| | 1 | 20 | | 2 | 25 | | 4 | 30 | 使用左连接语句可以将两个表连接起来,得到以下结果: ``` SELECT A.id, A.name, B.age FROM A LEFT JOIN B ON A.id = B.id; | id | name | age | |----|------|-----| | 1 | Tom | 20 | | 2 | Bob | 25 | | 3 | Ann | NULL| ``` 这个结果表明,左表中的所有行都被返回了,而只有右表中与左表匹配的行被返回了,如果右表中没有匹配的行,则用 NULL 值填充。 右连接(Right Join):右连接返回右表中的所有行,以及左表中与右表中的行匹配的行。如果左表中没有匹配的行,则返回 NULL 值。 继续以上面的例子,使用右连接语句可以得到以下结果: ``` SELECT A.id, A.name, B.age FROM A RIGHT JOIN B ON A.id = B.id; | id | name | age | |----|------|-----| | 1 | Tom | 20 | | 2 | Bob | 25 | | NULL| NULL | 30 | ``` 这个结果表明,右表中的所有行都被返回了,而只有左表中与右表匹配的行被返回了,如果左表中没有匹配的行,则用 NULL 值填充。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值