쿼리문 depth 좀 봐주세요
본문
select a.mb_id, a.wr_name, b.mb_name, a.wr_29, b.mb_level, b.mb_1, count(*) as cnt , sum(a.wr_23) as tot, depth
from {$write_table} a
inner join (
select mb_id,
mb_name,
mb_level,
if( mb_id is null, 0, 0) depth
from {$g5['member_table']}
where mb_id='{$main_id}'
union
select
p1.mb_id,
p1.mb_name,
p1.mb_level,
if( p2.mb_id is null, 1, if( p3.mb_id is null, 2, if( p4.mb_id is null, 3, if( p5.mb_id is null, 4, if( p6.mb_id is null, 5, if( p7.mb_id is null, 6, if( p8.mb_id is null, 7, if( p9.mb_id is null, 8, 9)))))))) depth
from {$g5['member_table']} p1
left join {$g5['member_table']} p2 on p2.mb_id = p1.mb_9
left join {$g5['member_table']} p3 on p3.mb_id = p2.mb_9
left join {$g5['member_table']} p4 on p4.mb_id = p3.mb_9
left join {$g5['member_table']} p5 on p5.mb_id = p4.mb_9
left join {$g5['member_table']} p6 on p6.mb_id = p5.mb_9
left join {$g5['member_table']} p7 on p7.mb_id = p6.mb_9
left join {$g5['member_table']} p8 on p8.mb_id = p7.mb_9
left join {$g5['member_table']} p9 on p9.mb_id = p8.mb_9
where '{$main_id}' in (p1.mb_9, p2.mb_9, p3.mb_9, p4.mb_9, p5.mb_9, p6.mb_9, p7.mb_9, p8.mb_9, p9.mb_9)
) as b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by mb_id
order by depth
도움을 받아서 depth까지는 나옵니다.
문제는 $main_id를 기준으로 1,2,3 이렇게 나오는게 아니라
무조건 최상위부터 depth 가 나옵니다.
예를들어
owner 아이디로 했을때
"aaaa"가 2뎁스,
"bbbb"가 3뎁스 이고..
그 하위 "cccc" 가 4뎁스인데
$main_id 를 bbbb 로 뿌렸을때도 "cccc"의 depth 가 4뎁스로 표기가 됩니다.
무조건 최상위 owner가 기준이 되고 있습니다.
$main_id 를 기준으로 depth 를 1,2,3 이렇게 표시할려면 어떻게 수정해야 하나요?
!-->
답변을 작성하시기 전에 로그인 해주세요.