表连接时出现null值怎么办?

95aaacbed8cdaabd492569d65b129837.jpeg

提问:

执行上面这个语句,下面查询出来的表左边全是空值是什么原因?

回答:

SQL查询的基本原理:

单表查询:根据where条件过滤表中的记录,然后根据select指定的列返回查询结果。

两表连接查询:使用on条件对两表进行连接形成一张虚拟结果集;然后根据where条件过滤结果集中的记录,再根据select指定的列返回查询结果。

多表连接查询:先对第一个和第二个表按照两表连接查询,然后用用连接后的虚拟结果集和第三个表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一张虚拟结果集,然后根据where条件过滤虚拟结果集中的记录,再根据select指定的列返回查询结果。

多表连接的结果通过三个属性决定:

方向性:在外连接中写在前边的表为左表、写在后边的表为右表。

主附关系:主表要出所有的数据范围,附表与主表无匹配项时标记为null,内连接时无主附表之分。

对应关系:关键字段中有重复值的表为多表,没有重复值的表为一表。

这是多表连接时,针对左连接、右连接哪个表为主表的典型问题。

什么是 LEFT JOIN 子句?

在左连接子句右表中连接两个或多个表,并返回左表中的所有行和匹配的记录,或者返回null如果没有找到任何匹配的记录。它也被称为左外连接。因此,Outer 是与 Left Join 一起使用的可选关键字。

cdfc49a2995688e9bf97ff765e5a581d.png

2.什么是RIGHT JOIN 子句?

该右连接从句连接两个或多个表,然后从右侧表返回所有的行,只有从其他表到的符合规定的那些结果连接条件。如果从左侧表中找到不匹配的记录,则返回 Null 值。它也被称为右外连接。因此,Outer 是与 Right Join 一起使用的可选子句。

2b0485fc31652b35e01d01989c166c36.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值