SQL JOIN 函数

在SQL中,我们经常需要将表与表之间连接起来,以达到我们查找的目的,这个时候我们有两种方法,一种是

SELECT *FROM table a,table b,table c WHERE a.id=b.id AND b.id = c.id

另一种就是使用JOIN函数,相比于单纯的多表查询运用JOIN用处更多,更加细致,使代码更可观更易理解。但是即使使用了JOIN函数,多表查询依旧可以说是SQL查询里面最绕的之一了。所以这里梳理一下JOIN 的用法和类别。

JOIN的用法

在这里插入图片描述
从https://www.runoob.com/sql/sql-join.html捞过来了一张图,很好用,很直率。

INNER JOIN

在这里插入图片描述
从图中我们可以看出,INNER JOIN查找的是表与表之间的交集,用法是

SELECT * FROM A INNER JOIN B ON A.KEY= B.KEY

OUTER JOIN

OUTER JOIN 的用处是即使有些不满足条件的,但是在特定表中依旧可以保留信息

LEFT OUTER JOIN

在这里插入图片描述
LEFT JOIN 一般被译作左连接,也写作 LEFT OUTER JOIN。左连接查询会返回左表(表 A)中所有记录,不管右表(表 B)中有没有关联的数据。在右表中找到的关联数据列也会被一起返回。

而图中第二个返回的左表(A)有但是右表(B)没有的所有记录

RIGHT OUTER JOIN

同上所述,只不过换了个方向

FULL OUTER JOIN

在这里插入图片描述
返回左右表的并集,也就是左右表都有的记录。
在这里插入图片描述
返回左右表交集的补集,这个MYSQL中写出来的通常是用UNION 结合

SELECT * FROM
A LEFT JOIN B ON A.KEY = B.KEY
WHERE B.KEY IS NOT FULL
UNION
SELECT * FROM
B LEFT JOIN A ON A.KEY = B.KEY
WHERE A,KEY IS NOT FULL

具体的还需要多练习一下体会一下,在实践中不可能只有两个表的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值