最近接到一个需求,需要导入另外一个系统的组织架构,对接的同事给了我一个目录表,但是竟然只有一个父级ID,没有全路径名称字段!!!你敢信?
我又需要全路径名称对应到我们系统的目录,所以我需要在MySQL中生成父级的全路径名称(不想写代码)
废话不多说,直接上SQL
SELECT
o.organization_name,
o.property_name,
CONCAT_WS('-',
o5.organization_name,
o4.organization_name,
o3.organization_name,
o2.organization_name,
o.organization_name
) AS full_path
FROM
organization_copy1 o
LEFT JOIN
organization_copy1 o2 ON o2.organization_id = o.parent_id
LEFT JOIN
organization_copy1 o3 ON o3.organization_id = o2.parent_id
LEFT JOIN
organization_copy1 o4 ON o4.organization_id = o3.parent_id
LEFT JOIN
organization_copy1 o5 ON o5.organization_id = o4.parent_id;
// 几级目录就连表几次
CONCAT_WS解析:
实现效果: