채택완료
SQL고수님께.. 게시판을 한번에 읽어 올때..
사진과 같이 읽어 왔으면 합니다.
Copy
select * from gr_write_테이블 where wr_is_comment = 0 order by wr_numselect * from g5_board_file where bo_table = 테이블 and where wr_id = 해당 게시글 order by bf_no
으로 게시판 다 읽어 오는데..
사진이 있다고 하면 어떻게 읽어와야 하나요? 하나의 SQL문장으로 했으면 합니다.
{ wr_id : 1
files: [
{
bf_file:
},
{
bf_file:
}
]
},
{wr_id: 2
}
JSON으로 했을 때 위와 같이 나와야 되는데. SQL 한문장으로 가능할까요?
답변 4개 / 댓글 1개
채택된 답변
+20 포인트
query 하나로 한 게시판의 게시물들을 파일 정보와 함께 읽어오고 싶으신 건가요?
Copy
SELECT bt.wr_id, bt.wr_subject, ft.bf_no, ft.bf_file FROM g5_write_게시판아이디 AS bt LEFT JOIN g5_board_file AS ft ON bt.wr_id = ft.wr_id WHERE ft.bo_table = '게시판아이디'ORDER BY bt.wr_num, ft.bf_no
이런식으로 하시면 될텐데.. 문제는 파일이 여러개면 같은 wr_id 인 row 가 여러개 fetch 됩니다.
PHP 코드로 살짝 손보셔야 할겁니다.
답변을 작성하려면 로그인이 필요합니다.
즉 하나의 메인에 첨부가 여러개 오는 것은 한의 SQL로 안된다는 것이죠..
LEFT JOIN을 더 공부해봐야 될것 같습니다. 감사합니다.
[code]
SELECT bt.*, ft.bf_no, ft.bf_file FROM g5_write_notice AS bt LEFT OUTER JOIN g5_board_file AS ft ON (bt.wr_id = ft.wr_id and ft.bo_table = 'notice') where wr_is_comment=0 ORDER BY bt.wr_num
[/code]
위와 같이 읽어와서 사진이 1개 이상인 곳의 wr_id로 제거해서 주면 될것 같네요..
[code]
foreach($arr as $k => $v)
{
foreach($arr as $key => $value)
{
if($k != $key && $v['wr_id'] == $value['wr_id'])
{
unset($arr[$k]);
}
}
}
//print_r($arr);
[/code]