0
点赞
收藏
分享

微信扫一扫

MySQL(12)自关联(以省市县数据实例详解)

郝春妮 2022-07-27 阅读 129


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);

MySQL(12)自关联(以省市县数据实例详解)_数据

  • 插入数据
    使用​省市县全量数据插入数据脚本​ 插入数据
    插入后查询结果如下:数据可能不全,作为测试用足够了

MySQL(12)自关联(以省市县数据实例详解)_mysql_02

MySQL(12)自关联(以省市县数据实例详解)_mysql_03

2、自关联查询语句详解

注:这里只用作练习,数据有可能存在问题,特此声明

  • 获取所有省、直辖市、特区等
  • MySQL(12)自关联(以省市县数据实例详解)_mysql_04

  • 查询江苏省所有的市

select province.atitle,city.atitle  from areas as province inner join areas as city on city.pid=province.aid having province.atitle="江苏省";

如:

MySQL(12)自关联(以省市县数据实例详解)_数据_05

  • 查询南京市所有的区县

select province.atitle,city.atitle  from areas as province inner join areas as city on city.pid=province.aid having province.atitle="南京市";

如:

MySQL(12)自关联(以省市县数据实例详解)_mysql_06


举报

相关推荐

0 条评论