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

Connect By Prior Equivalent für MySQL

MySQL unterstützt keine rekursiven Abfragen, also müssen Sie es auf die harte Tour machen:

  1. Wählen Sie die Zeilen aus, in denen ParentID = X wobei X ist dein Stamm.
  2. Erfassen Sie die Id Werte aus (1).
  3. Wiederholen Sie (1) für jede Id aus (2).
  4. Rekursionieren Sie von Hand weiter, bis Sie alle Blattknoten gefunden haben.

Wenn Sie eine maximale Tiefe kennen, können Sie Ihre Tabelle bis zur maximal möglichen Tiefe mit sich selbst verbinden (unter Verwendung von LEFT OUTER JOINs) und dann die NULLen bereinigen.

Sie könnten auch Ihre Baumdarstellung in verschachtelte Mengen ändern .