【发布时间】:2015-01-09 06:38:22
【问题描述】:
我有下表,想在 MariaDB/mySQL 中编写一个适当的 SQL 查询来返回下面的结果。
"dirID" "parentID" "name"
"1" "0" "C:\"
"2" "1" "\temp"
"3" "1" "\Users"
"4" "3" "\Jon"
dirID name
1 C:
2 C:\temp
3 C:\Users
4 C:\Users\John
到目前为止,我正在尝试使用 CASE WHEN,我很确定它的效率太低,而不是解决问题的方法如下:
cDir 是子目录,pDir 是父目录:
SELECT
cDir.dirID,
cDir.parentID,
cDir.name AS name,
CASE
WHEN cDir.parentID != 0 THEN ( SELECT pDir.name )
END AS path
FROM dirs AS cDir
JOIN dirs AS pDir ON cDir.parentID = pDir.dirID
所以最后我想做一个 CONCAT。
有什么帮助吗? 谢谢。
【问题讨论】:
-
MySQL 不支持递归查询...
-
@MatteoTassinari - MySQL 现在支持递归查询:dev.mysql.com/doc/refman/8.0/en/with.html
标签: mysql sql mariadb hierarchical parentid