use exercise;
create table dic_area(
id int(1),
area_id int(6),
area_name varchar(10),
parented int(6),
area_level int(1));
insert into dic_area values
(1,130000,"河北省",100000,1),
(2,130100,"石家庄市",130000,2),
(3,130102,"长安区",130100,3),
(4,130104,"桥西区",130100,3);
select
省份表.area_id as 省代码,
省份表.area_name as 省名称,
城市表.area_id as 市代码,
城市表.area_name as 市名称,
县级表.area_id as 县代码,
县级表.area_name as 县名称
from dic_area as 省份表
inner join dic_area as 城市表 on 省份表.area_id=城市表.parented
inner join dic_area as 县级表 on 城市表.area_id=县级表.parented;
-- 首先用as命名方式虚拟三张表出来,然后省级表和城市表连接最后连接县级表,再选取想要的字段as重命名,中间报错则一条一条添加和排查