(코드가 너무 길어서 질문이 잘렸던 것 같습니다... ㅠㅠ 질문 다시 올립니다.)
질문 내용은 아래와 같습니다.
wr_id | | wr_num | | wr_reply | | wr_subject | | wr_18(id) | ||
59 | | -1 | | 0 | | 김철수19 | | 김국환 | ||
60 | | -1 | | 1 | | 김철수20 | | |||
61 | | -2 | | 0 | | 김민희15 | | 김국환 | ||
62 | | -2 | | 1 | | 김민희16 | | |||
63 | | -2 | | 2 | | 김민의17 | | |||
64 | | -3 | | 0 | | 정민한8 | | 정지국 | ||
65 | | -3 | | 1 | | 정민한9 | | |||
66 | | | | | | ||||
특정 아동(자기 자식)을 매년 새로 기록하는 게시판이 있습니다.원글(맨 처음 쓴 글)의 wr_reply는 0이고 원글의 답변글을 눌러서 매년 새로운 기록을 합니다.
예를들어 김철수라는 아이를 19세부터 기록했다고 하면 원글은
59 | | -1 | | 0 | | 김철수19 | | 김국환 |
이고, 1년 후에 원글에 답변을 눌러서 작성하면,
60 | | -1 | | 1 | | 김철수20 | |
와 같습니다.(wr_subject는 자유롭게 작성)
이제 아버지 입장(김국환)에서 해당 게시판의 리스트를 확인 했을 경우 자식들의 가장 최신 기록만 나오게 하고 싶습니다. 즉,
60 | | -1 | | 1 | | 김철수20 | |
63 | | -2 | | 2 | | 김민의17 | |
이렇게 자기 자식의 최신 기록을 노출 시키고 싶습니다.
그런데 문제는 고유값인 wr_18는 최신 row에 포함되어 있지 않습니다.
자식이 하나라면 서브 쿼리를 통해 최신글 하나를 불러오는 것이 가능하지만 두 자녀 이상부터는 쉽지가 않네요.
서브 쿼리의 결과가 1개 여야 하기 때문입니다.(☜제 실력으로는 이렇게 생각하고 있습니다.)
쿼리 한방으로 위와 같은 결과를 가져오려면 어떻게 해야 할까요?
답변 4개 / 댓글 4개
-- 원하시는 한방쿼리 !!SELECT * FROM board WHERE wr_id IN ( SELECT MAX(wr_id) FROM board WHERE wr_num IN (SELECT wr_num FROM board WHERE wr_18='김국한') GROUP BY wr_num) ORDER BY wr_id ASC
답변에 대한 댓글 4개
김국한이라는 부모밑에 아들1/딸1 에대해서 지속적인 자료를 올려서 그 회원내의 목록만 볼수있도록 하고싶은것같군요.
1. list.skin.php 에서 1대1문의글을 참고해서 회원만 볼수있도록 처리를 하십시요.
이건 스킨자료실을 찾으시면 /bbs/list.php를 변경하는 방법과 list.skin.php상단에 $sql문을 다시 실행해서
회원전용게시물을 가져오는 방식등 몇가지가 있으니 참고하셔서 이용하시면 어떨까 싶습니다.
2. list목록에서 새로운 sql문을 하나 작성해서 노출시키는게 어떨까 싶습니다.
for(*****){
$sql =" select * from g5_write_{$bo_table} where wr_parent='{$list[$i][wr_id]}' and wr_is_comment='1' order by wr_datetime desc ";
for($i=0;$row=sql_fetch_array($result);$i++){
echo "<div >$row[wr_subject]</div>";
}
}
내용중에 db를 봐야할겠습니다만 wr_parent ??가 원wr_id 참조하는게 맞나 몰겠네요.^^
어쨋든 보통 목록리스트안에 새로운 목록(자식목록)을 보여주려면 새로 for문을 돌리면 가능할것입니다.
정확한 명칭은 틀릴수있으나 전체적인 프로세스는 위방식으로 하는게 맞을것입니다.
참고만 하십시요.^^
답변을 작성하려면 로그인이 필요합니다.
(SELECT wr_num FROM board WHERE wr_18='김국한')
에서 이미 원글만 추출되어
최종 결과도 원글로만 나오네요 ㅠㅠ...