개발자가 되고싶어요
70
2018-10-11 22:51:21
2
98

Oracle에서 CONNECT BY PRIOR의 조건절을 mysql에서는 어떻게 해야할까요..ㅠㅠ


제가 구현하고자 하는것은 

게시판에서 한 게시글의 상세로 들어갔을 때 댓글과 대댓글을 달고자 합니다!

먼저 db는  

qna_info(qna질문)과 qna_comment(댓글)이있습니다.

그리고 qna_comment에는 

comment_id // 댓글번호

qna_id // qna번호

writer // 작성자

date //등록일

content // 내용

comment_parent // 댓글 부모글 번호

가 있습니다.

oracle같은 경우 CONNECT BY PRIOR의 조건절을 사용하여 한 게시글에 해당하는 댓글 리스트를 뽑아 올 수 있습니다.(아래와 같이)


SELECT LEVEL, comment_id, qna_id,

comment_writer, comment_date,

comment_content, comment_parent

FROM qna_comment

WHERE qna_id = ?

START WITH comment_parent = 0

CONNECT BY PRIOR comment_id = comment_parent


mysql에서 찾아보니 아래와 같은 방법을 찾았습니다.

SELECT @R AS _ID


,(SELECT @R:= comment_parent FROM qna_comment WHERE comment_id = _ID) AS comment_parent

, @L:=@L+1 AS LEVEL

FROM ( SELECT @R:=13) VARS

, qna_comment H

, (SELECT @L:=0) LV

WHERE @R <> 0;


그런데 여기서 문제가 댓글의 번호를 가져와야 그 하위 댓글을 가져올 수 있는데 저는 게시글의 번호에 해당하는 댓글의 계층 쿼리를 만들고자 합니다..ㅠㅠ

어떻게 해야할까요...

0
0
  • 답변 2

  • 도각도각
    3k
    2018-10-12 15:46:16

    Recursive 사용하세요.


    with recursive..


    http://www.postgresdba.com/bbs/board.php?bo_table=P01&wr_id=69

    0
  • 개발자가 되고싶어요
    70
    2018-10-14 02:50:07

    아!! 감사드립니다!!!!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.