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

我们可以运用Join或者Where 将多个表连接起来,最常见的是inner join。
PS 在表连接时,可以通过别名的方式来简化我们的语句。

注意⚠️如果在多表中出现相同的列名,这需要使用表名作为来自该表的列名的前缀。
另外,若连接条件是无效或者省略,那就会发生笛卡尔积,所谓笛卡尔积就是让我们所有连接的表每一行都发生多条连接,例如:表一有a条记录,表二有b 条记录,则笛卡尔积就有a*b条记录,为了防止这样的情况发生,我们需要提供有效的条件。
内连接
它是通过使用运算符来进行表与表之间的列数据比较操作。
基础语法为:select * from table1 inner join table2 on table1.字段名=table2.字段名
⚠️其中inner join可以简写为join。

上面的阴影部分就是通过内连接后得出来的表。即两表同时存在部分。
例子:表1和表2 通过内连接得出表3

select a.*,b.level from #table1 a join #table2 b on a.store=b.store
外连接
a.左外连接left join:左外连接以子句中的左表为基础,连接右表,将呈现出左表所有字段,右表仅呈现出与左表共同行。

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

例子,表1和表2 通过左外连接得出表3:
select a.*,b.level from #table1 a left join #table2 b on a.store=b.store
b.右外连接right join:右外连接以子句中的右表为基础,连接左表,将呈现出右表所有字段,左表仅呈现出与左表共同行。

上面的阴影部分就是通过右外连接后得出来的表。
例子,表1和表2 通过右外连接得出表3:

select a.*,b.level from #table1 a right join #table2 b on a.store=b.store
c.全外连接full join:返回所有结果,包括未匹配成功的结果

上面的阴影部分就是通过全外连接后得出来的表。
例子,表1和表2 通过全外连接得出表3:

select a.*,b.level from #table1 a full join #table2 b on a.store=b.store
好啦,今天就到这里,其实在我们工作时,我们常常只能通过表连接才能得到我们想要的内容,所以这个表连接特别关键,大家可以收藏起来,有什么不懂的问题可以在公众号直接问我哟。
