Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

consulta mysql para obter o pai raiz


Tente esta consulta

Ele funciona com a suposição de que o id do pai é menor que o filho, pois os registros estão sendo classificados em ordem decrescente como uma tabela derivada antes da consulta real.
select 
  @parent:=parent_id as prnt, title, id
from
  (select @parent:=8 ) a
join 
  (select * from tbl order by id desc) b
where 
  @parent=id

Fiddle

| PRNT | TITLE | ID |
|------|-------|----|
|    7 |     q |  8 |
|    6 |     a |  7 |
|    0 |     d |  6 |

Observação A melhor maneira é fazer isso usando um procedimento armazenado.