MySQL---自关联

自关联

多级联动选择查询
存储所有的省份(直辖市)

id name
1 北京市
2 山东省

存储全国所有的地级市

id name p_id
1 济南市 2
2 青岛市 2
3 石家庄市 3

全国区县

id name c_id
1 四方 2
2 崂山 2

-------------------------------上面的多张表太复杂了,下面的一张表-----------------------------------------------------------
全国所有的地级市,全国区县所有表结构相同,我们进行统一处理

id name p_id
1 北京市 null
2 南昌市 null
3 九江市 2
4 海淀区 1

这就是自关联。。。一个表的一个字段关联另一个字段—一张表解决问题

之前做项目的时候还用了几张表来进行关联,然后写了很复杂的查询语句进行查询,,那样是不好的,现在才发现这是比之前还好的解决方案。

创建表
create table areas(
aid int primary key,
atitle varchar(20),
pid int
);

往数据库中插入数据=。=
数据自行准备,我自己也没有插入数据。。因为没有啊。
心里要明白~

aid atitle pid
110000 北京市 NULL
120000 天津市 NULL

select aid from areas where atitle=“山东省”;
取出了aid,然后查看山东省有哪些地级市
select * from areas where pid=370200;

一次性查出来:
将一张表利用链接查询理解为两张表实现多表查询
select province.atitle,city.atitle from areas as province inner join areas as city on city.pid=province.aid having province.atitle=“山东省”;

select * from areas as province inner join areas as city on city.pid=province.aid having province.atitle=“山东省”;

猜你喜欢

转载自blog.csdn.net/qq_40637313/article/details/88944479