-- 练习(DELL):根据给出的表查询:输出省代码、省名称、市代码、市名称、县代码、县名称
#130000 河北省 130100 石家庄市 130102 长安区
#130000 河北省 130100 石家庄市 130104 桥西区
create table dic_area(
id int(1),
area_id int(6),
area_name varchar(10),
parentid 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);
#第1,来自哪些表的连接
#左连接
select *
from dic_area di1
left join dic_area di2
on di1.area_id=di2.parentid
left join dic_area di3
on di2.area_id=di3.parentid;
#内连接,剔除左连接因没有匹配到用null值填充的行
select *
from dic_area di1
inner join dic_area di2
on di1.area_id=di2.parentid
inner join dic_area di3
on di2.area_id=di3.parentid;
#第2,加入我们要的字段
select di1.area_id 省ID,di1.area_name 省名,di2.area_id 市ID,di2.area_name 市名,di3.area_id 县ID,di3.area_name 县名
from dic_area di1
inner join dic_area di2
on di1.area_id=di2.parentid
inner join dic_area di3
on di2.area_id=di3.parentid;








暂无数据