内连接
- 将两表简单结合:
select stu.name, sch.name from student stu join school sch on stu.id = sch.id;
该语句将学生表与学校表连接,该连接会将所有学生信息一一与学校信息比对筛选,也称为为笛卡尔积,其匹配的次数为两表数据之积
外连接
- 内连接两表时,如上例,有的学校的id或许在学生中没有出现,也就是说被筛选掉的数据就不显示出来,那么外连接相对来说对两表就用了主次关系,用
left join
和right join
来形成主次关系,left join
的左边那个表为主表,右边为次表,right join
则反之,形成外连接时,数据库会以主表为参照,一一筛选次表的数据,若没有匹配的值,主表中的数据仍然会打印到结果中
- 在三张以上表连接时,应该用以下结构:
select
...
from
...a
join
...b
on
...#a和b两表的连接条件
join
...c
on
...#a和c两表的连接条件,也可以理解为ab连接后再和c连接的条件
...