0
映射我有一個這樣的表:通過遞歸在SQL
[Mappings]
Parent | Child
---------------
4 | 10
1 | 4
在SQL中,我試圖運行與10
輸入查詢,並取回其父母的全部環比上漲。在這種情況下4
和1
。
如果我用4
的輸入運行它,它將返回1
。
我在想我需要使用一個公共表格表達式(CTE),但是語法卻把我拋棄了。
映射我有一個這樣的表:通過遞歸在SQL
[Mappings]
Parent | Child
---------------
4 | 10
1 | 4
在SQL中,我試圖運行與10
輸入查詢,並取回其父母的全部環比上漲。在這種情況下4
和1
。
如果我用4
的輸入運行它,它將返回1
。
我在想我需要使用一個公共表格表達式(CTE),但是語法卻把我拋棄了。
我懷疑你使用SQL Server,如果是,那麼你需要的東西是這樣的:
create table #test(
Parent int,
Child int
);
insert into #test
values
(4 , 10),
(1 , 4),
(10 , 12);
with rec as (
select #test.*, 1 as lvl from #test where Child = 10
union all
select #test.*, lvl + 1 as lvl from #test
inner join rec
on #test.Child = rec.Parent
)
select parent, lvl from rec
OPTION (MAXRECURSION 0)
也能看到(在這種情況下lvl
)級列
什麼RDBMS也許有用嗎?該語言可以是具體的 – xQbert
它的答案在這裏: [https://stackoverflow.com/questions/28170635/get-all-parents-for-a-child](https://stackoverflow.com/questions/28170635/get -all-parents-for-a-child) –
這是SQL Server – mariocatch