Copy
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
from {$write_table} a
inner join (
select mb_id,
mb_name,
mb_level,
mb_1,
mb_13
from {$g5['member_table']}
where mb_id='{$main_id}'
union
select
p1.mb_id,
p1.mb_name,
p1.mb_level,
p1.mb_1,
p1.mb_13
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 p6.mb_id = p6.mb_9
left join {$g5['member_table']} p8 on p6.mb_id = p7.mb_9
left join {$g5['member_table']} p9 on p6.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
group by mb_id
mysql 5라서 재귀쿼리가 안됩니다.
mb_9를 기준으로 하위 인원을 뽑아오는데
여기에 depth를 넣고 싶습니다.
기준이 되는 mb_id를 0을 기준으로 하위로 1, 2, 3... 이렇게 넣어서 소트를 시키고 싶은데
depth를 어떻게 넣어야 할지 모르겠습니다.
답변 2개 / 댓글 6개
채택된 답변
+20 포인트
역시 무식한 답변을 드리자면
if( p2.mb_id is null, 1, if( p3.mb_id is null, 2, if( p4.mb_id is null, 3, ...)))
답변에 대한 댓글 6개
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']} p9 on p6.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에 쓰면 left 조인은 의미가 없습니다.
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']} p9 on p6.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에 쓰면 left 조인은 의미가 없습니다.
[code]
select
p1.mb_id,
p1.mb_name,
p1.mb_level,
p1.mb_1,
p1.mb_13,
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)))))))) 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 p6.mb_id = p6.mb_9
left join {$g5['member_table']} p8 on p6.mb_id = p7.mb_9
left join {$g5['member_table']} p9 on p6.mb_id = p8.mb_9
where '{$main_name}' 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
[/code]
에러가 나네요
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')))))))) depth from g5_member p1 left join g5_member p2 on p2.mb_id' at line 18
ㅠㅠ
select
p1.mb_id,
p1.mb_name,
p1.mb_level,
p1.mb_1,
p1.mb_13,
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)))))))) 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 p6.mb_id = p6.mb_9
left join {$g5['member_table']} p8 on p6.mb_id = p7.mb_9
left join {$g5['member_table']} p9 on p6.mb_id = p8.mb_9
where '{$main_name}' 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
[/code]
에러가 나네요
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')))))))) depth from g5_member p1 left join g5_member p2 on p2.mb_id' at line 18
ㅠㅠ
답변을 작성하려면 로그인이 필요합니다.