首页 > 解决方案 > 公司中的父子站分层

问题描述

因此,母公司应该可以分层访问其所有子公司的站点。例如,我们有 3 家公司 A、B 和 C,分别拥有 10、5 和 2 个充电站。B公司属于A公司,C公司属于B公司。那么可以说A公司拥有17个,B公司拥有7个,C公司总共拥有2个充电站。

数据库

  1. 站(id、名称、company_id、地址)
  2. 公司(id、parent_company_id、名称)

标签: mysql

解决方案


这就是我创建查询的方式,从中获得了帮助

SELECT id,name,parent_company_id FROM
    (SELECT id,name,parent_company_id,
            CASE WHEN id = 1 THEN @idlist := CONCAT(id)
                 WHEN FIND_IN_SET(parent_company_id,@idlist) THEN @idlist := CONCAT(@idlist,',',id)
            END as checkId
     FROM Test
     ORDER BY id ASC) as T
WHERE checkId IS NOT NULL

它将返回所有 id,并且在这些 id 基础上,我可以获得站数。


推荐阅读