Mysql
 sql >> Database >  >> RDS >> Mysql

Recupera la gerarchia genitore-figlio da una tabella mysql autoreferenziale

MySQL non supporta le query ricorsive, quindi se un bambino può avere figli non c'è modo di formulare una query del genere. Altrimenti questa query dovrebbe restituire le righe nell'ordine di cui hai bisogno:

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

Si prega di vedere violino qui . Il trucco è ordinare le righe per id se è un genitore o da parent_id se è un bambino, e poi da id .