Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQL Tree aus einer Tabelle (https://www.delphipraxis.net/130909-sql-tree-aus-einer-tabelle.html)

Kalfany 15. Mär 2009 15:50

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:
  id | titel | subid
------------------
1  | text | 0
2  | text | 0
3  | text | 0
4  | text | 2
5  | text | 2
6  | text | 0
7  | text | 1
jetzt stehe ich vor folgendem problem:

die daten sollen nach ID sortiert gelesen werden aber die mit subid > 0 sollen der zugehörigen id untergeordnet werden... also so:

Code:
1  | text | 0
->7  | text | 1
2  | text | 0
->4  | text | 2
->5  | text | 2
3  | text | 0
6  | text | 0
also eig. ein baum mit nur einem unterknoten .... mir würds schomal helfen wenn mir jemand sagen könnte obs überhaupt geht

omata 15. Mär 2009 16:11

Re: SQL Tree aus einer Tabelle
 
Allgemeine Lösung: klick

Eingeschränkte Lösung (nur eine Unterebene):
SQL-Code:
SELECT CASE WHEN subid = 0 
         THEN id
         ELSE subid
       END AS sortID, *
FROM tabelle
ORDER BY sortID, id
oder noch kürzer, wenn anstelle von der Zahl 0 in der subid-Spalte der Wert NULL stehen würde...
SQL-Code:
SELECT COALESCE(subid, id) AS sortID, *
FROM tabelle
ORDER BY sortID, id
und noch kürzer...
SQL-Code:
SELECT *
FROM tabelle
ORDER BY COALESCE(subid, id), id

Kalfany 15. Mär 2009 17:50

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.

RWarnecke 15. Mär 2009 18:42

Re: SQL Tree aus einer Tabelle
 
Hier ist nochmal ein anderes Beispiel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz