1>多表连接查询
语法:
SELECT 字段1,...字段n
FROM 表1 INNER|LEFT|RIGHT JOIN 表2
ON 表1.字段 = 表2.字段;
如上,先找到两张表,再根据on筛选条件筛选记录,得出一张新的(合体)表,再基于新表查值。
连接分为三种情况,inner,left,right
--->内连接 inner:只取两张表的共同部分。
--->左连接 left:在内连接的基础上保留左表的记录,即做连接之后的结果
包含 左表.字段 所有有值的记录,其中有些记录的值可能并不满足 on筛选条件。
--->右连接 right:在内连接的基础上保留右表的记录
--->模拟 full join 的全连接,MySQL本身不支持 full join语法,但是可以通过union实现。
select 字段 from 表1 left join 表2 on 表1.字段=表2.字段
union select 字段 from 表1 right join 表2 on 表1.字段=表2.字段;
例子,如下,有两张表,班级表和学生表,学生表的class_id逻辑上和班级表的id一样,并没有设置
外键进行强关联,并且各有条数据与另一张表没有对应关系,看下各连接的实际效果。
</