MySQL(1)CentOS彻底卸载MySQL
MySQL(2-1)CentOS安装MySQL详细操作
MySQL(2-2)CentOS7系统使用Docker安装mysql数据库
MySQL(3)MySQL中的数据类型和约束
MySQL(4)数据库常见操作命令详解
MySQL(5)数据表常见的操作命令详解
MySQL(6)数据表中数据的增删改查
MySQL(7)常用的基本查询命令详解
MySQL(8)常用的条件查询命令详解
MySQL(9)查询并排序详细用法
MySQL(10)聚合查询、分组查询、分页查询
MySQL(11)连接查询
MySQL(12)自关联(以省市县数据实例详解)
MySQL(13)子查询
MySQL(14)数据库的设计
MySQL(15)视图
MySQL(16)事务
MySQL(17)索引
MySQL(18)账户管理
自关联简单点说就是将多个有关系而且表结构一致的表合成一个表,最具代表性的就是省市区县镇村的信息,如果分开表示他们每一级都可以是一个表,每个表中有三个字段即自身id,自身名称,上一级id,而将他们合二为一时,即可以在一个表中实现
1、数据准备:为演示自关联的查询操作,这里先准备一下数据:
- 创建数据库
create table areas(aid int primary key,atitle varchar(30),pid int);
- 插入数据
使用 省市县全量数据插入数据脚本 插入数据
插入后查询结果如下:数据可能不全,作为测试用足够了
2、自关联查询语句详解
注:这里只用作练习,数据有可能存在问题,特此声明
- 获取所有省、直辖市、特区等
- 查询江苏省所有的市
select province.atitle,city.atitle from areas as province inner join areas as city on city.pid=province.aid having province.atitle="江苏省";
如:
- 查询南京市所有的区县
select province.atitle,city.atitle from areas as province inner join areas as city on city.pid=province.aid having province.atitle="南京市";
如: