Postgresql query für eine erste-n-Ebene Eltern-Kind-Beziehung gespeichert in einer einzelnen Tabelle
Ich habe eine Tabelle die angibt Eltern-Kind-Beziehungen. Die Beziehungen können wechseln n-Stufe tief.
Habe ich eine Beispiel-Tabelle mit der folgenden Abfrage:
CREATE SEQUENCE relations_rel_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE relations(
rel_id bigint DEFAULT nextval('relations_rel_id_seq'::regclass) NOT NULL PRIMARY KEY,
rel_name text,
rel_display text,
rel_parent bigint
);
Muss ich die Tabelle Abfragen und anzeigen der Eltern-Kind-Beziehungen hierarchisch. Ich bin noch immer nicht eine Idee über, wie man Abfragen n-Stufe tief mit sql-Abfrage.
Für die sqlfiddle zB die erwartete Hierarchie der Ausgabe:
rel1
rel11
rel111
rel112
rel1121
rel2
rel21
rel211
rel212
N. B: Den Wert n in n-level
ist unbekannt.
DB-Design:
Gibt es eine bessere Möglichkeit ein solches Verhältnis kann ausgedrückt werden in
Datenbank für einfache Abfragen.?
InformationsquelleAutor der Frage saji89 | 2013-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Postgres kann man eine rekursive common table expression:
SQLFiddle basierend auf deinem Beispiel: http://sqlfiddle.com/#!11/59319/19
(Ich ersetzt die Leerzeichen für die Einrückung mit Unterstrichen als SQLFiddle nicht angezeigt, die Leerzeichen richtig)
InformationsquelleAutor der Antwort a_horse_with_no_name