---
title: "Lista sidträd"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/171805-lista-sidträd"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Hyzac"
published: "2008-05-27T08:28:53.000Z"
updated: "2008-05-27T09:26:53.000Z"
replies: 3
views: 508
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/171805-lista-sidträd"
---

# Lista sidträd

## #1 — Hyzac, 2008-05-27T08:28Z

Jag har en tabell som består av sidor med id, name och parent. Den refererar alltså sig själv när det kommer till undersidor. Jag skulle vilja få en sorterad lista som listar sidorna i ordningen:

id namn pId
1  sida1  0
2  usida1 1
3  sida2  0

Den hämtar alltså först en parent sida och sedan dess barn och sedan nästa parent-sida osv.

Tack på förhand  :)

Permalänk: https://www.webforum.nu/p/171805

## #2 — spango, 2008-05-27T08:54Z

Går inte med standard-SQL. Du får antingen göra en rekursiv funktion som hämtar ut från databasen eller någon DBMS-specifik rekursiv query.

Permalänk: https://www.webforum.nu/p/2112732

## #3 — LarsG, 2008-05-27T09:20Z

Jo, om databasen har stöd för with så går det med standard sql. Finns i t.ex. SQL server och DB2.

Permalänk: https://www.webforum.nu/p/2112734

## #4 — Hyzac, 2008-05-27T09:26Z

Det är SQL 2005 som jag jobbar i. Har kollat lite på det här med with men får inte till det.
Så här långt har jag kommit:

```
WITH mSiteMap (Parent, Id, Title, Level)
AS
(
    SELECT e.Parent, e.Id, e.Title, 0 AS Level
    FROM SiteMap AS e
    WHERE Parent = 0
    UNION ALL
    SELECT e.Parent, e.Id, e.Title, Level + 1
    FROM SiteMap AS e
	INNER JOIN mSiteMap AS s
		ON e.Parent = s.Id
)
SELECT Parent, Id, Title, Level
FROM mSiteMap
```

Men den ordnar det bara i nivåerna, alltså först kommer nivå 0 sen 1, sen två
inte 0, 1, 1.1, 1.2, 2, 2.1 osv

Permalänk: https://www.webforum.nu/p/2112736

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/171805-lista-sidträd
