다중테이블 쿼리 질문좀드릴게요

다중테이블 쿼리 질문좀드릴게요

QA

다중테이블 쿼리 질문좀드릴게요

본문

다중테이블 쿼리 질문좀드릴게요

 

test게시판에서 공지사항인것만 뽑고싶은데.. 테이블2개 동시에하는건 익숙하지않아 어려움이있습니다.

 

test게시판에 wr_is_comment = 0 번인 것을 조건을 주고

g5_board의 test게시판에 bo_notice인것을 조건을 주어서 공지사항인것만 추출하고싶은데

이런경우 어떻게 테이블2개를 작성해야하는지 잘모르겠습니다.

 

제가 했던 방법은

select * FROM test UNION SELECT * FROM  g5_board  where bo_table = 'test' and bo_notice= '$wr_id'

 

도움좀부탁드립니다.

이 질문에 댓글 쓰기 :

답변 3

select * FROM test A

LEFT JOIN g5_board B ON B.bo_notice=A.wr_id

이걸 원하시는 건가요??

답변감사합니다.. 저녁늦게 죄송합니다
해봤는데 test 테이블 모든게시물이 출력되네요..

select * FROM test A LEFT JOIN g5_board B ON B.bo_notice='A.$wr_id'
공지가 달린글은 wr_id=969번이고

test게시판의 wr_is_comment 가 0번이고
g5_board의 게시판의 bo_notice가 969번일때
969 번 게시물만나오게하고싶은데.. 제가 테이블2개를 동시에해본적없어서 잘모르겠습니다
계속 검색해보고있지만 잘풀리질 않고 있네요..

여러가지 방법이 있겠지만,

무난한 방법중의 하나는..

두번 쿼리를 하는 것입니다.

 

예를 들어,

select * from g5_write_test where wr_id in (1,2,3);

은 wr_id 가 1, 2, 3 인 게시글을 가져옵니다.

 

정리하여 다음과 같은 코드를 사용하면 됩니다.


$sql = "select bo_notice from g5_board where bo_table = 'test'";
$row = sql_fetch($sql);
$notice_wr_id = $row['bo_notice']; // ex. 969,970
 
$sql = "select * from g5_write_test where wr_id in (" . $notice_wr_id . ") ";
$result = sql_query($sql)
while($row = sql_fetch_array($result)) {
  echo $row['wr_id'];
  echo $row['wr_subject'];
  echo "<br>";
}

select * from g5_write_test a

where a.wr_id in ( select bo_notice from g5_board b

                        where b.bo_table = 'test' )

 

의 쿼리로 추출가능합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1,010
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT