Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP/MySQL:Rufen Sie einen einzelnen Pfad im Adjacency-List-Modell ab

Nein, zumindest nicht in MySQL. Das ist eine der größten Einschränkungen des Adjacency List Model .

Sie könnten sich weiterhin eine begrenzte Anzahl von Malen selbst anschließen, aber das ist hässlich, umständlich und deckt nicht unbegrenzte Schulden ab. Sie können auch alle Daten in Ihrer Anwendung herunterladen, einen Baum erstellen und den Pfad in der Anwendung finden.

Einige DBMS, wie SQL Server 2005, Postgres 8.4 und Oracle 11g, unterstützen rekursive Abfragen mit allgemeinen Tabellenausdrücken mit dem WITH Stichwort. Mit dieser Funktion können Abfragen wie diese problemlos geschrieben werden, aber leider unterstützt MySQL noch keine rekursiven Abfragen.

Möglicherweise interessieren Sie sich für den folgenden Artikel, der ein alternatives Modell beschreibt (das Nested-Set-Modell ), was rekursive Operationen in MySQL einfacher (möglich) macht:

Außerdem schlage ich vor, sich die folgende Präsentation von @Bill Karwin anzusehen , ein regelmäßiger Mitwirkender bei Stack Overflow:

Das in der Präsentation beschriebene Abschlusstabellenmodell ist eine sehr gültige Alternative zum verschachtelten Satz. Er beschreibt dieses Modell ausführlicher in seinen SQL Antipatterns Buch (Auszug aus dem Kapitel zu diesem Thema ). ).