Mailinglisten-Archive |
Hi, Ich benötige Hilfe bei einer Tabelle mit in sich referenzierten Werten. Die Tabelle enthält eine ID, einen Wert und eine Referenz auf eine ID (siehe Dump). Ich suche ein einzelnes SQL Statement mit dem ich die miteinander referenzierten Werte in einer Zeile ausgeben kann. Ideal wäre ein Concat mit dem Ergebnisse "erste Ebene -> zweite Ebene -> dritte Ebene". Natürlich ist die Anzahl der miteinander referenzierten Datensätze, also die Tiefe der Hierarchie beliebig. An dem Layout der Tabelle kann ich nicht ändern (NestedSets würden das z.B. lösen) weil ich mich im Rahmen einer bestehenden Applikation (dotproject) bewege. Das ganze brache ich auch als ein einzelnes Select Statement, weil ich es in ein komplexes Query zur Anreicherung der Daten einfügen muss. Irgendein Vorschlag? Möglicherweise Umstieg auf mySQL 5.0 und dann über einen View lösen? (wüsste aber auch hier keine Lösung, bin mit Views nicht fit) Dump: CREATE TABLE reftab ( reftab_id int(11) NOT NULL default 0, reftab_value varchar(80) NOT NULL default '', reftab_parent int(11) NOT NULL default 0 ) INSERT INTO reftab VALUES (1, 'erste Ebene', 0); INSERT INTO reftab VALUES (2, 'zweite Ebene', 1); INSERT INTO reftab VALUES (3, 'dritte Ebene', 2); Vielen Dank, Christian Rütgers -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive