sql提问!需要根据被编码的路径得到最终的文字版路径。
如图所示,图中id表示文件id,folder_id为所在上级文件夹id,path_ids是文件夹的路径id,fname为文件夹名。想要根据path_ids得到文件所在的全路径,,path_ids里的数字对应folder_id,名字对应fname。
求各位帮帮忙,这个好难,应该怎么做。
这个不属于数据库的范畴了 是要写代码实现
题主提供的数据有限,我自己编了数据做查询,本人用的是hive,语法可能与mysql有点差异,具体思路如下,供参考哈:
SELECT
t2.fname AS first_folder_name
,t3.fname AS second_folder_name
,t1.fname AS third_folder_name
,t1.name AS file_name
FROM
(
SELECT
id
,name
,folder_id
,fname
,split(path_ids,'/')[1] AS first_folder
,split(path_ids,'/')[2] AS second_folder
FROM tmp.tmp_test_20220822_01
WHERE id = '354001772267'
) t1
LEFT OUTER JOIN
(
SELECT
folder_id
,fname
FROM tmp.tmp_test_20220822_01
) t2
ON t1.first_folder = t2.folder_id
LEFT OUTER JOIN
(
SELECT
folder_id
,fname
FROM tmp.tmp_test_20220822_01
) t3
ON t1.second_folder = t3.folder_id
;