sql >> Database >  >> RDS >> Mysql

PHP/MySQL:Haal een enkel pad op in het Adjacency List-model

Nee, in ieder geval niet in MySQL. Dat is een van de grootste beperkingen van het Aangrenzend Lijstmodel .

Je zou jezelf een eindig aantal keren kunnen blijven joinen, maar dat is lelijk, onhandig en dekt geen onbeperkte diepte. U kunt ook alle gegevens in uw toepassing downloaden, een boomstructuur maken en het pad in de toepassing vinden.

Sommige DBMS'en, zoals SQL Server 2005, Postgres 8.4 en Oracle 11g, ondersteunen recursieve query's met behulp van algemene tabeluitdrukkingen met de WITH trefwoord. Met deze functie kunnen zoekopdrachten zoals deze met gemak worden geschreven, maar helaas ondersteunt MySQL nog geen recursieve zoekopdrachten.

Mogelijk bent u geïnteresseerd in het volgende artikel waarin een alternatief model wordt beschreven (het geneste setmodel ), wat recursieve bewerkingen gemakkelijker (mogelijk) maakt in MySQL:

Daarnaast raad ik ook aan om de volgende presentatie te bekijken van @Bill Karwin , een regelmatige bijdrager op Stack Overflow:

Het in de presentatie beschreven sluitingstabelmodel is een zeer valide alternatief voor de geneste set. Hij beschrijft dit model in meer detail in zijn SQL Antipatterns boek (uittreksel uit het hoofdstuk over dit onderwerp ).



  1. Hoe kan ik in mijn geval SQL in Oracle schrijven?

  2. Het verschil vinden tussen twee waarden in dezelfde kolom in MySQL

  3. Oracle LIMIT n,m equivalent

  4. producten vinden die klanten samen hebben gekocht