1. 多表关联的目的
有的字段存在于多张表中,有的字段只存在于某张表, 为了从不同表取需要的字段
2.多表关联的实质
多表关联其实就是将不同表之间的列进行合并
3.多表关联的属性特点
(1) 合并后表与表之间的字段取并集在一起,即使两个字段是相同字段,但是在pandas中,相同的字段会合并成一列
(2)用来连接的表也可以是临时表,其实连接好的表也是一张临时表
4.语法
# 内关联
select 表.字段
from 表A
(inner)join 表B on 表A字段=表B字段
(inner)join 表C on 表C字段=表B字段
.....
where 条件(适用于以上所有表,可以只过滤单个表,也可以是多个表)
group by ;
#外关联之左关联or右关联
select 表.字段
from 表A
left join 表B on 表A字段=表B字段
.....
where 条件(适用于以上所有表,可以只过滤单个表,也可以是多个表)
group by ;
(1)语法jion ....on...一定要记得带on!!!
(2)多表关联的时候,select后面一定是【表名.字段】(避免多表存在字段重复,区分出不同表的字段)
(3)必须给每个表起别名
(4)必须用相同意思的字段,字段的名字不一定一样
(5)join默认是内关联,如果需要内关联不强制加inner
5.多表关联的原理
(1)多表关联原理:迪卡尔积
假设表1有m行,表2有n行
join 无 on :
把表1中的每一行,与表2的每一行匹配,相当于表1的每一行都可以拥有表2的所有行
最终结果是m*n行记录
(2)join...on
实际运用过程中,一定要加on,是在上面形成的笛卡尔积基础上,挑选参照字段中的记录(可能是内关联,求字段记录交集;也可能是外关联,其中一个表的字段记录)
6.多表关联的连接类型
下表演示的是内关联,外关联原理相同。