sql >> Databáze >  >> RDS >> Mysql

Načtěte hierarchii rodič-dítě ze samoodkazující tabulky mysql

MySQL nepodporuje rekurzivní dotazy, takže pokud dítě může mít děti, neexistuje způsob, jak takový dotaz formulovat. Jinak by tento dotaz měl vrátit řádky v pořadí, které potřebujete:

SELECT * FROM tablename
ORDER BY
  CASE WHEN parent_id=0 THEN id ELSE parent_id END,
  id

Viz housle zde . Trik je v řazení řádků podle id pokud je to rodič nebo podle parent_id pokud je to dítě, a pak pomocí id .




  1. Operátor SQL AND pro začátečníky

  2. SQLAlchemy více cizích klíčů v jedné mapované třídě na stejný primární klíč

  3. Jak přečtu , as <br /> v PHP/MySQL?

  4. Volání procedury Oracle s parametrem typu kolekce PL/SQL přes .NET