mysql 查询问题,求大神帮忙

mysql查询问题

条件:
rural_basic_address表:存放的是基础地区信息表

        关键字段
            region_name:地区名       region_code:地区行政编号
            pids:父级地区行政编号。

图片说明

rural_basic_address_message :详细的乡镇信息。自己手动添加的

         关键字段
            region_code:地区code     pids:    pids:父级地区行政编号。

图片说明

问题:
传入一个省级CODE 查出下面的市有哪些已提交的村镇信息数量。没有村镇信息的市不查询。

例如
传入了韶关市code 则查询出了武江区有三个已提交的乡镇信息

  1. 库表设计不合理,不应该用一个字段包含多级关系,这样也不利于树形结构的UI维护
  2. 在库表设计合理的前提下,可以考虑在服务端写存储过程,实现递归查询 以前做过的erp系统,物料表bom是有10万+零件构成的树形结构,就是遵循上述两条原则完成的

https://download.csdn.net/download/oudoud/10774679

select m.* from rural_basic_address a,rural_basic_address_message m where m.pids like a.region_code||‘%’ and a.region_name='韶关市'.
数据最好pid只存父code。别把所有的父code都存一个字段里。这样就可以用树遍历的sql去遍历。很方便。

rural_basic_address,rural_basic_address_message字段pids 字段能不能拆成多对多关系表

select * from rural_basic_address where
pids in (select r.pids from rural_basic_address r where r.pid='440200')

你这应该是省、市、区、镇,你这pid应该存的就是直接父级吧,比如镇里面的pid存的是它属于哪个区吧,如果是这样可以通过pid去层层关联,不用pids啊