这些是我的桌子。
Step
stepid name
a place1
b place2
c place3
d place4
e place5
f place6
Stage
stageid start finish
1 a b
2 b c
3 c d
4 d e
5 e f
Trip
tripid stageid
1 1
1 2
1 3
1 4
1 5
我想实现这个查询结果
tripid stageid
1 place1,place2,place3,place4,place5,place6
我知道如何将所有 id 放入一个字段以及如何用分配的名称替换 id。但是我不知道如何加入这两种解决方案。
这是我用来将 id 放入一个字段的 sql。
SELECT REPLACE(stageid,'''') as stages
FROM (SELECT SYS_CONNECT_BY_PATH(stageid,' ') stageid, level
FROM trip
START WITH stageid = (select min(stageid) from trip)
CONNECT BY PRIOR stageid < stageid
ORDER BY level DESC)
WHERE rownum = 1;
start 和 finish 是 stepid 的外键,trip table 的 stageid 是 Stage 表中 stageid 的外键我在 oracle developer ver 3.2 上工作。你能帮忙吗?