프로그램/DB

mysql/mariadb tree query

milktea.kang 2019. 10. 30. 15:29

with 를 사용 할 수 없는 환경에서 쿼리

mysql : 8.0 이상 with 사용 가능

 

mariadb : 10.2.2 이상 with 사용 가능

 

set @id := 330;

select
    @tmp_id AS tree_company_id
    ,(SELECT @tmp_id := parent_company_id FROM company WHERE company_id = tree_company_id) AS tree_parent_company_id
    ,(@tree_level := @tree_level + 1) AS tree_level
from (
    select @tmp_id := @id,@tree_level := 0
) AS vars
join (
    select
        *
    from
        company
    where 1=1
) AS h
WHERE @tmp_id <> 0
;