开发者社区> 问答> 正文

MySQL分组查询数据的问题

有两个表:
表location是无限级分类表(店面),结构如下:
13
表info是信息表(商家信息),结构如下:
14
info表的location字段值只关联location表的子级id,即3、4。 现在要做的操作是,当表单提交后URL传过id(该值仅为location的顶级分类,即1,2,可为1,可为2,或者1,2两个值一起),查询以info表的name进行分组,查询有多少家商家。
我写了一个查询如下,没写完,查出了的数据不是以location表一级数据(东店、南店)和info表之间的数据关系
`select i.name,group_concat(distinct i.location order by i.location) as group_id,

        group_concat(distinct f.location_name order by f.location_name) as group_name,
        count(*) as count
        from shop_info i            
        left join shop_location f on f.location_id = i.location
        group by i.name
        having group_id = '????'
        order by group_id desc`

麻烦各位sql高手解答。

展开
收起
落地花开啦 2016-02-13 15:01:26 2469 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    给info信息表再加上location_f字段,表示location的父级id。
    sql可以这样写,其中$getUrl为获取的搜索值:
    `select i.name,group_concat(distinct i.location_f order by i.location_f) as group_id,
    group_concat(l.location_name) as group_name,
    count(*) as count
    from info i
    left join location l on l.location_id = i.location
    group by i.name
    having group_id = '$getUrl'
    order by count desc`

    2019-07-17 18:42:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像