热线电话:13121318867

登录
2022-10-31 阅读量: 420
mysql学习16-多表查询练习2

-- 练习(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;


0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子