MySQL - Recursing einer Baumstruktur
Ich habe eine Datenbank-Tabelle, die einen link Standorten zusammen; ein Ort werden kann, in einer Lage, die innerhalb einer anderen Lage.
location (<id>, ....)
location_parent (<location_id>, <parent_id>)
Hier ist die MySQL/PHP zu gehen für eine Tiefe von einem:
$sql = "SELECT id FROM se_locations_services WHERE parent_locationid IN
( SELECT location_id FROM se_locations_parent WHERE parent_id = '$locationid' )";
Wie ich, gegeben eine übergeordnete Position, bekommt alle seine Nachkommen Standorten, egal wie tief, nur mit MySQL?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine good-looking-Artikel über an mysql.com skizziert unterschiedliche Möglichkeiten der Verwaltung von hierarchischen Daten. Ich denke, es bietet eine vollständige Lösung für Ihre Frage, und zeigt verschiedene, weniger einfache, aber eine schnellere Ansätze (z.B. Verschachtelte Sätze).
MySQL
fehlt native Unterstützung von hierarchischen Funktionen, so dass Sie ll haben, Sie zu emulieren verwenden von session-Variablen zu halten, die Rekursion Zustand.Finden Sie in diesem Artikel auf wie man implementieren Sie die Funktion:
Einen viel besseren Weg, die Verwaltung dieser Art von Daten ist die Verwendung der Modified Preorder Tree Traversal-Technik:
http://articles.sitepoint.com/article/hierarchical-data-database/2
hth
w://
Seit mysql-Anweisungen können zurückkehren, nur Tabelle strukturierte Daten, wie stellst du dir das zurückgegebene Baum-Struktur?
Es ist auch möglich, eine Auswahl mit [parent_id, child_id] Tabelle, aber es erfordert eine temporäre Tabelle und ich habe es gesehen "DB2", nicht auf MySQL.
Lesen Sie diesen Artikel, für die Umsetzung auf baumartige Strukturen in MySQL gespeichert: http://articles.sitepoint.com/article/hierarchical-data-database/