테스트 사이트 - 개발 중인 베타 버전입니다

쿼리문 좀 봐주세요 채택완료

예서제이 3년 전 조회 1,782

</p>

<p>$sql = "</p>

<p>    select

            mb_name, mb_9,  mb_id

    from    (select * from {$g5['member_table']}

             order by mb_9, mb_id) products_sorted,

            (select @pv := '{$main_name}') initialisation

    where   find_in_set(mb_9, @pv)

    and     length(@pv := concat(@pv, ',', mb_id))</p>

<p>";</p>

<p>    $result = sql_query($sql, true);

    while ($row = sql_fetch_array($result)) {</p>

<p>    print_r2($row);</p>

<p>

 

 

mysql 5.x 버전이라 재귀쿼리문을 사용하지 못합니다.

{$main_name} 의 아이디로부터 mb_9가 연결되어 있는 모든 하위리스트를 뽑아내는 소스인데..

 

10개 라인에 총100명이 있다고 했을때

9개 라인의 90명은 잘 불러오는데 1개 라인에 10명만 불러오지 못합니다.

 

해당 회원을 삭제, 수정, 재 등록 해봐도... 계속 똑같은 라인만 불러오지 못하는데...

제가 알지 못하는 부분이 있는지 궁금합니다.

 

불러오지 못하는 라인을 전부 하나하나 체크해봐도.. 상위가 {$main_name}로 연결이 되어 있는데..

애초에 에러가 나면 모르겠는데.. 에러도 안나고 잘 불러오는데..

특정 라인만 못불러오는게... 미치겠습니다. ㅜㅜ

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
3년 전

$sql = "

  select mb_name, mb_9, mb_id

    from {$g5['member_table']}

   where instr(mb_9, '{$main_name}')

";

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

예서제이
3년 전
감사합니다....
그런데 이번엔 더 많은 라인을 못불러오네요 ㅠㅠ
마르스컴퍼니
3년 전
"{$main_name} 의 아이디로부터 mb_9가 연결되어 있는 모든 하위리스트를 뽑아내는 소스"

이 부분을 조금 더 구체적으로 설명해 주시면 좋을 것 같습니다.
예서제이
3년 전
위에 이미지로 첨부했습니다.

댓글을 작성하려면 로그인이 필요합니다.

3년 전

{$main_name} 이 ID 인지 Name 인지 모르겠습니다.

어려운 쿼리를 쓰지 않아도 됩니다. (가능하다면 쉬운 쿼리를 쓰는 것이 좋습니다.)

 

$sql = "

  select mb_name, mb_9, mb_id

    from {$g5['member_table']}

   where mb_9 in (select mb_9 from {$g5['member_table']} where mb_id = '{$main_name}')

";

 

or

 

$sql = "

  select mb_name, mb_9, mb_id

    from {$g5['member_table']}

   where mb_9 in (select mb_9 from {$g5['member_table']} where mb_name = '{$main_name}')

";

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

마르스컴퍼니
3년 전
(정정) where mb_9 in (select mb_id

-> where mb_9 in (select mb_9
엑스엠엘
3년 전
본문 내용의 query는
mysql8.x 부터 지원하는 CTE를 대신할 수 있는 query인데
잘 안 되는 거 보면 썩 좋은 편은 아닌가 봅니다.
예서제이
3년 전
답변감사합니다.
쿼리문 적용해보니...

같은 라인의 (같은 상위 id를 mb_9)를 두고 있는 회원이 나오네요.. ㅠㅠ
위 아래 같습니다.

즉... {$main_name}이 100009 이고 이 회원의 mb_9가 1001 이면
mb_9가 1001 인 회원이 모두 출력이 됩니다. ㅠㅠ
마르스컴퍼니
3년 전
[code]
$sql = "
select mb_name, mb_9, mb_id
from {$g5['member_table']}
where mb_9 in (select mb_id from {$g5['member_table']} where mb_id = '{$main_name}')
";
[/code]

댓글을 작성하려면 로그인이 필요합니다.

예서제이

 

간단한 조직도 입니다.

 

{$main_name} 가 이옥 (아이디 : 1003015) 이였을때

 바로 하위는 mb_9가 전부 1003015로 되어 있으며 그 하위도 마찬가지입니다.

 

위 소스는 최상위 1003015 의 모든 하위를 보여주는 소스인데..

저 빨간 부분만 불러오지 못하는 상황입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인