多表操作
一、多表连接
将多张表连在一起进行查询。通过两个表共有的列去进行拼接。多表连接,首先要在表之间建立连接。
连接查询一共分为以下几类:
- 交叉连接
- 内连接
- 外连接
- 自然连接
(一)交叉连接
将一张表的数据与另外一张表中的数据彼此交叉。也就是说把一张表中的每一行逐个与另一张表去进行匹配。没有任何连接条件,所有的记录都会被保留。
SELECT 字段1,字段2 FROM 表1 JOIN 表2
交叉连接产生的结果是笛卡尔积,没有实际应用。
(二)内连接
使用比较运算符设置连接条件,将一个表中的所有行与另外一张表中的行进行匹配,只返回满足条件的行。
SELECT 字段1,字段2 FROM 表1 JOIN 表2 WHERE 连接(检索条件)
注:内连接一次可以连接很多张表,只需要在在建立连接的时候连接多张表,在设置检索条件的时候把需要检索的信息都设置好就可以。
(三)外连接
在查询时所有的表有主从之分。把作为主表的表的行与从表中的行一一进行匹配,如果匹配成功返回到主表中,如果匹配不成功,则仍然保留主表中的行,相应的从表中的行也被填上null值。
左外连接:LEFT JOIN ON
把左表作为主表去连接右表
SELECT * FROM 表1 LEFT JOI