mysql 查询问题,求大神帮忙

mysql查询问题

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

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

图片说明

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

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

图片说明

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

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

6个回答

  1. 库表设计不合理,不应该用一个字段包含多级关系,这样也不利于树形结构的UI维护
  2. 在库表设计合理的前提下,可以考虑在服务端写存储过程,实现递归查询 以前做过的erp系统,物料表bom是有10万+零件构成的树形结构,就是遵循上述两条原则完成的
sayabluecup
sayabluecup 确实不合理,做完业务后项目经理总是提出和之前不一样的需求,已经把项目经理祭天并重新设计了表结构。顺利解决问题
8 个月之前 回复
sayabluecup
sayabluecup 不是这个,大佬可以看一下我的问题
8 个月之前 回复

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去遍历。很方便。

luojianjun2
Flying_with_you 回复sayabluecup: 这个能查省的啊,像你的440000应该是代表省吧,就能查出pids包含440000的乡村信息啊
8 个月之前 回复
sayabluecup
sayabluecup 这样只能查询单个市的吧,我想查的是传入省级code查询其下所有市,有乡村信息的市。还有数量
8 个月之前 回复

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啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问