员工表与单位表通过like organ_path关联,如何查询每个单位包含下级的员工数量,要求走索引,效率高
时间: 2024-03-01 12:51:01 浏览: 98
查询索引对应的表和列
5星 · 资源好评率100%
可以使用以下SQL语句查询每个单位包含下级的员工数量:
```
SELECT t1.organ_path, COUNT(t2.id) AS emp_count
FROM unit_table t1
JOIN employee_table t2 ON t1.organ_path LIKE CONCAT(t2.organ_path, '%')
GROUP BY t1.organ_path;
```
这条SQL语句中,我们使用了 `JOIN` 关键字将 `unit_table` 和 `employee_table` 表连接起来。同时,我们使用了 `LIKE` 来建立 `organ_path` 字段之间的关联。最后,使用 `COUNT` 函数统计每个单位包含下级的员工数量,并使用 `GROUP BY` 分组。
为了让这个查询更加高效,我们可以为 `organ_path` 字段添加索引,以加快 `LIKE` 操作的速度。可以使用以下语句为 `unit_table` 表的 `organ_path` 字段添加索引:
```
ALTER TABLE unit_table ADD INDEX idx_organ_path (organ_path);
```
这样,我们就可以在上面的查询中使用索引了,从而提高查询效率。
阅读全文