有时我们为了保证数据的有效性,把带有层次结构的数据保存在同一张表里面,初学的时候我们会觉得不知道如何查询!而且表有几个字段,查出来的结果不会超过表的字段。其实不然,造成这种原因是因为思维定势!举个例子
省表:tb_area
那么我们要查询各个省各个市都列出来怎么办,比如
其实就是要把我们查询到的结构作为表再查询一次,首先我们查询出所有省,
select id provinceId,name provinceName from tb_area where parentId=0
结果:
把这个结果作为表再与原表进行联合查询(注意:MySql里面查询的结果不允许有相同的字段,否则会报错,所以要改名字,而且改了名字查询的时候思路也会清晰一些)再进行一次查询:
select provinceId,provinceName,city.id cityId,city.name cityName
from
(select id provinceId,name provinceName
from tb_area where parentId=0) province,tb_area city
where city.parentId=provinceId
结果:
至于所有省所有区的话,我相信看懂的都会查了!就是要把这个作为结果再与tb_area进行查询!