SQL고수님께.. 게시판을 한번에 읽어 올때..
본문
사진과 같이 읽어 왔으면 합니다.
select * from gr_write_테이블 where wr_is_comment = 0 order by wr_num
select * 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
query 하나로 한 게시판의 게시물들을 파일 정보와 함께 읽어오고 싶으신 건가요?
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 코드로 살짝 손보셔야 할겁니다.
!-->
*** 개인정보보호를 위한 이메일주소 노출방지 *** 친추주세요
한문장으로 불가능합니다.
get_file($bo_table, $wr_id) 을 이용하세요. ^^
해당함수는 /lib/common.lib.php 에 있습니다.
sql 한문장이 아니더라도 하나의 array 에 결과값을 짜집기해서 넣고 json 으로 변환하면 위와 같이 뽑을수 있습니다.
파일이 몇개인지 모르는 상황에서 한문장으로 하려면 서브쿼리나 left join 으로 뽑아서 php 에서 루프돌리면서 필터링해야 하는데 DB부담도 부담이고, 오히려 효율적이지 않습니다.
답변을 작성하시기 전에 로그인 해주세요.