1、自连接查询
自连接查询就是一个表和它自身进行连接,是多表连接的特殊情况.
自连接查询就是以类似多表对比的方式,实现对同一张表内数据进行复杂的关系表示或者处理.
例子:
区域表效果图 :中国->省>市->区/镇
例子表格数据
提取码:0000
分析:
1 查询省的名称为'山西'的所有城市
select b.title from areas as a inner join areas as b on a.id=b.pid where a.title='山西省';
或者
SELECT a.title from areas as a INNER JOIN areas as b ON a.pid=b.id where b.title='山西省';
2 查询所有省份的信息
select title from areas where areas.pid is null;
3 查询所有省份信息,查询每个省份的城市数量
select a.title,count(*) from areas as a inner join areas as b on a.id=b.pid where a.pid is null group by a.title;
解释 :
where a.pid is null
当左表pid为空,也就是说 左边主键为省
group by a.title
以左表省 分组
2、内连接查询
查询两个表中符合条件的共有记录
内连接查询效果图:
语法格式:
select 字段 from 表1 inner join 表2 on 表1.字段1=表2.字段2;
说明:
- inner join 就是内连接查询关键字
- on 就是连接查询条件
3、左连接查询
以左表为主根据条件查询右表数据 ,如果根据条件查询右表数据不存在使用null值填充
左连接查询效果图:
左连接查询语法格式
select 字段 from 表1 left join 表2 on 表1.字段1=表2.字段2
说明:
- left join 就是左连接查询关键字
- on 就是连接查询条件
- 表1 是左表
- 表2 是右表
4、右连接查询
以右表为主根据条件查询左表数据 ,如果根据条件查询左表数据不存在使用null值填充
右连接查询效果图:
语法格式:
selcet 字段 from 表1 right join 表2 on 表1.字段=表2.字段
说明:
- right join 就是右连接查询关键字
- on 就是连接查询条件
- 表1 是左表
- 表2 是右表