SQL查询的问题,怎么把表里面已有的字段对应转换成表里面的值
就比如这种结构,其实就是一个树形结构,parentID==ID,那这个时候怎么把parentID转成ID对应的name,即知道上一级的名字

SQL查询的问题,怎么把表里面已有的字段对应转换成表里面的值
就比如这种结构,其实就是一个树形结构,parentID==ID,那这个时候怎么把parentID转成ID对应的name,即知道上一级的名字

如果想查询出树形结构的数据,可以使用以下sql
WITH RECURSIVE Tree AS (
SELECT id, parentid, tname, 1 AS level
FROM public.tree_info
WHERE parentid = '' -- 根节点的条件,假设根节点的parentid为空字符串
UNION ALL
SELECT child.id, child.parentid, child.tname, parent.level + 1
FROM public.tree_info child
JOIN Tree parent ON child.parentid = parent.id
)
SELECT id, parentid, tname, level
FROM Tree
ORDER BY level, id;
如果想根据id查询出parentid对应的name,可以使用以下sql:
SELECT t1.id, t1.parentid, t1.tname AS child_name, t2.tname AS parent_name
FROM public.tree_info t1
LEFT JOIN public.tree_info t2 ON t1.parentid = t2.id
WHERE t1.id = '';