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

두 개의 sql을 공통된 값을 가진 것끼리 합치는 방법 채택완료

하호헤하 1년 전 조회 13,631

다음 두 sql을 활용해서

 

$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and wr_comment_reply = '' order by wr_good desc ";

 

$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and wr_comment_reply != '' order by wr_comment_reply asc ";

 

아래와 같은 결과값이 나오게 하려면 어떻게 해야할까요?

 

http://sir.kr/data/editor/2407/3034923468_1720390169.043.png" width="100%" />

 

두 개의 sql에서 나온 값을 wr_comment 값이 같은 것끼리 묶어주고 싶은데 힌트라도 좀 주실 수 있을까요? ㅠㅠ

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

답변 5개

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

</p>

<p>$sql = " 

SELECT 

     c.wr_id,c.wr_parent,c.wr_comment,c.wr_comment_reply,c.wr_good,c.wr_content,c.mb_id

FROM 

    {$write_table} a 

    INNER JOIN 

    {$write_table} b ON b.wr_parent = a.wr_id AND b.wr_is_comment = 1 AND b.wr_comment_reply = '' 

    INNER JOIN 

    {$write_table} c ON c.wr_num = b.wr_num AND c.wr_is_comment = 1 AND c.wr_comment = b.wr_comment  

WHERE 

    a.wr_id = {$wr_id}

ORDER BY 

     b.wr_good DESC

    ,c.wr_comment_reply ASC

";</p>

<p>

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

답변에 대한 댓글 1개

하호헤하
1년 전
정말 감사합니다! 복 많이 많이 받으세요 배르만님!!!

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

질문을 다시 보니 오히려 쿼리로 해결하시기보다는 결과(배열)을 php 로 가공해서

원하는 결과를 만드시는 게 낳을 것 같습니다.

wr_commnet 를 비교해 가며 값이 달라지면 배열에 로우를 추가하는 방식으로요.

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

답변에 대한 댓글 1개

하호헤하
1년 전
넵 감사합니다!! 채택을 한분밖에 못해드리네요 ㅠㅠㅠ 감사합니다!!

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

복스리
1년 전

UNION 을 사용하시구  SELECT 에서 DISTINCT를 사용하여 같은 결과값은 중복처리를 방지하시는 방식으로 하시면됩니다.

 

크게 어려울꺼 없어보여집니다. 

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

답변에 대한 댓글 1개

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

R
1년 전

같은 테이블의 데이터를 위와같이 출력해야 하는경우

order by 와 group by 를 적절히 사용하시면 원하시는 출력결과가 가능합니다.

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

답변에 대한 댓글 1개

하호헤하
1년 전
넵 감사합니다!! 채택을 한분밖에 못해드려서 죄송해요 ㅠㅠㅜ

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

 

두 데이터를 묶을 때는  UNION ALL 을 씁니다.

아래처럼요..

 

SELECT * FROM (

    select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and wr_comment_reply = ''
    UNION ALL
    select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and wr_comment_reply != ''

) ORDER 컬럼  asc

 

조건이랑 정렬은 조정해야 할 거고요..

 

참고하세요==>  https://silverji.tistory.com/49

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

답변에 대한 댓글 1개

하호헤하
1년 전
감사합니다 하얀감자님!! 혹시 제 글에 사진처럼 같은 wr_comment 값을 가진 것끼리 묶는 것은 어떻게 해야할까요? 그게 가장 궁금한 거라서요 ㅠㅠ 그 부분 방향성을 못 잡겠네용 ㅠㅠ

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

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

로그인