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

mysql-Abfrage, um das Stamm-Elternteil zu erhalten

Versuchen Sie es mit dieser Abfrage

Es funktioniert unter der Annahme, dass die ID des übergeordneten Elements kleiner als die des untergeordneten Elements ist, da die Datensätze vor der eigentlichen Abfrage als abgeleitete Tabelle absteigend sortiert werden.

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 |

Hinweis Der beste Weg ist die Verwendung einer gespeicherten Prozedur..