【发布时间】:2020-03-12 14:07:28
【问题描述】:
我有一个自引用表(在 SQL Server 中):
Page
==========
Id: int
RelativeUrl: nvarchar(max)
ParentId: int -> FK to pageId
示例数据:
ID | RelativeUrl | ParentId
===============================
1 | /root | null
2 | /test1 | 1
3 | /test2 | 1
4 | /test3 | 1
5 | /test1-1 | 2
6 | /test1-2 | 2
7 | /test1-1-1 | 5
我想创建一个 sql 查询来检索具有完整相对 url 的表的所有页面。 我考虑过使用递归 SQL 查询,但不知道如何连接 relativeurl 以使其成为完整的相对 url。
想要的结果:
ID | FullRelativeUrl | ParentId
===================================================
1 | /root | null
2 | /root/test1 | 1
3 | /root/test2 | 1
4 | /root/test3 | 1
5 | /root/test1/test1-1 | 2
6 | /root/test1/test1-2 | 2
7 | /root/test1/test1-1/test1-1-1 | 5
【问题讨论】:
-
标记您正在使用的 DBMS。
-
什么关系型数据库?这对于回答这类问题非常重要。
-
抱歉,忘记那部分了。它是 SQL Server
标签: sql sql-server concatenation self-referencing-table