mysql内连接和外连接的区别_关于左连接,右连接,内连接的分析

今天在关于数据库的连接时犯了一个错误,将左连接时的条件用成了where 所有有感而发就进行了一下研究。这里的

SELECT

b.`bookId`,b.`bookName`,b.`bookNo`,b.`bookNo`

FROM book b LEFT JOIN student s

ON b.`stuId`=s.`stuId`

WHERE b.`bookId`=1

这里添加了where 条件是 先进行连接,再进行where 条件筛选

SELECT

b.`bookId`,b.`bookName`,b.`bookNo`,b.`stuId` FROM book b LEFT JOIN student s ON b.`stuId`=s.`stuId`

本来只是这样就可以了,由于在程序中查找了半天终于找到了错误

在这里介绍下左连接,右连接,内连接,完全连接

第一张是学生表

0b8578fb34c5eba819591144a3fd5ee4.png

第二张book表

771bd437e3db330aadeae167461e027b.png

现在我们进行左连接

SELECT *

FROM book b LEFT JOIN student s ON b.`stuId`=s.`stuId`

结果如下:

8095810216fa01401be43db7345bb8af.png

可以看到左表中的数据完全出来了,而右边只出了匹配的表

下面进行右连接

SELECT *

FROM book b RIGHT JOIN student s ON b.`stuId`=s.`stuId`

50e19914ddd0a6c9ee841d58af4bb013.png

可以从上表中看到,右边中的内容全部出来了,而左表中没有的内容,显示为空

接下来看看内连接

SELECT *

FROM book b INNER JOIN student s ON b.`stuId`=s.`stuId`

62d4b43e0b227287441300c720d1bd5f.png

可以看到左表中的内容和右表中的内容满足条件的才显示出来

最后完全连接

SELECT b.`bookId`,b.`bookName`

FROM book b FULL JOIN student s ON b.`stuId`=s.`stuId`

这里是查询不出的,在mysql中,不支持完全连接

在SQL中完全连接时,在内连接的基础上,不符合的数据也可以查出来

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值