mysql - 公司中的父子站分层
问题描述
因此,母公司应该可以分层访问其所有子公司的站点。例如,我们有 3 家公司 A、B 和 C,分别拥有 10、5 和 2 个充电站。B公司属于A公司,C公司属于B公司。那么可以说A公司拥有17个,B公司拥有7个,C公司总共拥有2个充电站。
数据库
- 站(id、名称、company_id、地址)
- 公司(id、parent_company_id、名称)
解决方案
这就是我创建查询的方式,从中获得了帮助。
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 基础上,我可以获得站数。
推荐阅读
- swift - 链接 SwithUI 视图时显示多个导航栏
- javascript - Highcharts Sparkline图表与表格的动态数据-Angular js
- vb.net - 关于在 Visual Studio VB.net 中编码的 vba 类
- python - 使用python从多个CSV文件中删除多行
- php - 为 PHP 设置 Apache 时遇到问题
- c++ - std::uniform_int_distribution,适用于 Visual Studio 2019 编译器,但不适用于 Clion 和 MinGw
- linux - 如何在 iMX8QXP 上运行 OV5647_mipi
- python - 如何在python readline中获取当前光标位置
- c++ - 在opencv c ++中从向量中检索固定帧数
- java - SpEL @Value 与嵌套条件