内连接
内连接:结果为两个匹配到的数据
语法格式1:select * from 表1 inner join 表2 on 表1.列=表2.列
语法格式2:select * from 表1,表2 where 表1.列=表2.列
-- 例1:查询学生信息及学生的成绩
select * from students inner join scores on students.studentNo = scores.studentno;
select * from students ,scores where students.studentNo=scores.studentno;
左连接
内连接:结果为两个表匹配到的数据加左表特有的数据,对于右表中不存在的数据使用null填充
-- 语法格式:select * from 表1 left join 表2 on 表1.列=表2.列
-- 例1:查询所有学生的成绩,包括没有成绩的学生
select * from students left join scores on students.studentNo=scores.studentno;
右连接
右连接:结果为两个表匹配到的数据加右表特有的数据,对于左表中不存在的数据使用null填充
-- 语法格式:select * from 表1 right join 表2 on 表1.列=表2.列
-- 例1:查询所有学生的成绩,包括没有成绩的学生
select * from scores right join students on students.studentNo=scores.courseNo;
自连接
自连接:要通过自关联进行查询时,当前自关联的表当中一定会存在两个相关联的字段
-- 自关联:inner join 关联同一个表,不同的字段。
-- 自关联要用别名
-- select * from 表名 as 别名1 inner join 表名 as 别名2 on 别名1.列=别名2.列
-- 例1:查询河南省所有的市
select * from areas as1 inner join areas as2 on as1.aid=as2.pid where as1.atitle='河南省';