我有一张桌子
col1 col2 col3
----------------
6 ab
2 cd 3
3 eg 6
7 hs 3
5 gh 4
6 kj 7
当我用kj(col2
)搜索时,col3-7等于col1-7所以" hs"需要添加到树(hs-kj)现在col3-3与col1-3"例如"添加到树,然后col3-6与col1-6,所以" ab"添加到树,所以输出应该是(ab-eg-hs-kj)
请有人回答此问题吗?
答案 0 :(得分:1)
假设col1
是唯一的,此查询将执行此操作;
WITH cte AS (
SELECT m.col2, m.col3, 1 col4 FROM mytable m WHERE col2='kj'
UNION ALL
SELECT m.col2, m.col3, col4+1 col4 FROM mytable m JOIN cte ON m.col1 = cte.col3
)
SELECT col2 FROM cte ORDER BY col4
An SQLfiddle sample where col1 is unique
目前,ab
和kj
具有相同的col1
值,这使ab
超过kj
的选择不明确。如果这不是一个错误,则需要澄清选择标准。