![]() |
Datenbank: MySQL • Zugriff über: SQL
SQL Tree aus einer Tabelle
hi,
irgendwie steh ich grad aufm schlauch (leider auch schon einige zeit nix mehr mit sql zu tun gehabt) ich habe eine tabelle:
Code:
jetzt stehe ich vor folgendem problem:
id | titel | subid
------------------ 1 | text | 0 2 | text | 0 3 | text | 0 4 | text | 2 5 | text | 2 6 | text | 0 7 | text | 1 die daten sollen nach ID sortiert gelesen werden aber die mit subid > 0 sollen der zugehörigen id untergeordnet werden... also so:
Code:
also eig. ein baum mit nur einem unterknoten .... mir würds schomal helfen wenn mir jemand sagen könnte obs überhaupt geht
1 | text | 0
->7 | text | 1 2 | text | 0 ->4 | text | 2 ->5 | text | 2 3 | text | 0 6 | text | 0 |
Re: SQL Tree aus einer Tabelle
Allgemeine Lösung:
![]() Eingeschränkte Lösung (nur eine Unterebene):
SQL-Code:
oder noch kürzer, wenn anstelle von der Zahl 0 in der subid-Spalte der Wert NULL stehen würde...
SELECT CASE WHEN subid = 0
THEN id ELSE subid END AS sortID, * FROM tabelle ORDER BY sortID, id
SQL-Code:
und noch kürzer...
SELECT COALESCE(subid, id) AS sortID, *
FROM tabelle ORDER BY sortID, id
SQL-Code:
SELECT *
FROM tabelle ORDER BY COALESCE(subid, id), id |
Re: SQL Tree aus einer Tabelle
wow vielen dank ...
nachdem ich an der struktur nix ändern kann/darf fallen 2 & 3 schonmal weg ... aber 1 funktioniert wunderbar .... wär nie auf die idee gekommen ein case im select-teil zu verwenden. |
Re: SQL Tree aus einer Tabelle
Hier ist nochmal ein anderes
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz