请解释什么是左外连接_sql连接汇总

ac595695d2a8b2bad7a66d916a1ffe79.png

所谓表连接,基于表格之间的相同字段,使表之间发生关联,让两个或多个表连接在一起。

基本的连接表达式为:

c0db5eb78c5c30f6585e5710d96c7408.png

我们可以运用Join或者Where 将多个表连接起来,最常见的是inner join。

PS 在表连接时,可以通过别名的方式来简化我们的语句。

74a45cfd94afefc672f0bf0cf20a0a62.png

注意⚠️如果在多表中出现相同的列名,这需要使用表名作为来自该表的列名的前缀。

另外,若连接条件是无效或者省略,那就会发生笛卡尔积,所谓笛卡尔积就是让我们所有连接的表每一行都发生多条连接,例如:表一有a条记录,表二有b 条记录,则笛卡尔积就有a*b条记录,为了防止这样的情况发生,我们需要提供有效的条件。

内连接

它是通过使用运算符来进行表与表之间的列数据比较操作。

基础语法为:select * from table1 inner join table2 on table1.字段名=table2.字段名

⚠️其中inner join可以简写为join。

7068c26d4c87dd46b8a5fd8403f811b1.png

上面的阴影部分就是通过内连接后得出来的表。即两表同时存在部分。

例子:表1和表2 通过内连接得出表3

b11dcf7ae6698bbaea2f49dfdff4be19.png

select a.*,b.level from #table1 a join #table2 b on a.store=b.store

外连接

a.左外连接left join:左外连接以子句中的左表为基础,连接右表,将呈现出左表所有字段,右表仅呈现出与左表共同行。

6efa1c099979341429a4d31db7d7b422.png

上面的阴影部分就是通过左外连接后得出来的表。

44cd99ee6ab82cf83327ef45e5e6eb44.png

例子,表1和表2 通过左外连接得出表3:

select a.*,b.level from #table1 a left join #table2 b on a.store=b.store

b.右外连接right join:右外连接以子句中的右表为基础,连接左表,将呈现出右表所有字段,左表仅呈现出与左表共同行。

be27efc9c4c271ff50648bc8abb40c1b.png

上面的阴影部分就是通过右外连接后得出来的表。

例子,表1和表2 通过右外连接得出表3:

dfc0b13af16f3e71e8129d38130297ad.png

select a.*,b.level from #table1 a right join #table2 b on a.store=b.store

c.全外连接full join:返回所有结果,包括未匹配成功的结果

70f99ac4ef75df771b41dc805a179ba0.png

上面的阴影部分就是通过全外连接后得出来的表。

例子,表1和表2 通过全外连接得出表3:

2c3b2815829b798200092a0e1577c10c.png

select a.*,b.level from #table1 a full join #table2 b on a.store=b.store

好啦,今天就到这里,其实在我们工作时,我们常常只能通过表连接才能得到我们想要的内容,所以这个表连接特别关键,大家可以收藏起来,有什么不懂的问题可以在公众号直接问我哟。

aca044267e1ec7134b8b4e6ac5c08df5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值