테스트 사이트 - 개발 중인 베타 버전입니다

쿼리 실행할떄 다중 게시판 채택완료

김형김 7년 전 조회 2,377

$sql = " select wr_id from g5_write_lab where wr_subject IN(
    select wr_subject from g5_write_lab  group by wr_subject HAVING COUNT(*) > 1
) and wr_is_comment = '0' order by wr_datetime > date_sub(now(), interval 1 day) "; 

 

-----------------------------------------------------------------

 

형님들 쿼리 실행할때  게시판을 한번에 여러개 쓸수 없을까요 

예) g5_write_lab , g5_write_lab2 , g5_write_lab3

 

array 까지는 생각을 해냈는데 계속 실패중입니다 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
7년 전

다중게시판을 참조할때는

현재 보드의 이름이 항상 키값으로 유지되는게 중요합니다.

 

게시판의 wr_id 는 어떤 게시판이든 기본키로 존재해서

 

bo_table 명이 없이 접근할경우

어느 게시물인지 알수 없죠

 

이런것을 방지하기위해선

 

g5_board 테이블과 엮어서 보여주는게 중요하겠죠

 

하지만 1:1 join이 어려운 구조라서, 

PHP 구문을 활용하는게 좋습니다.

 

$sql = "select * from g5_board ";

$result = sql_query($sql);

$unionsql = "";

while ($row = sql_fetch_array($result)) {

    if ($unionsql) $unionsql .= " union all ";

    $unionsql = "select '{$row['bo_table']}' bo_table, a.* from g5_write_".$row['bo_table']." ";

    //맨뒤에 여백이 필요합니다. 

 

}

 

위에서 다 합쳐진 쿼리를

다시 접근합니다.

$result2 = sql_query($unionsql);

while ($row2 = sql_fetch_array($result2)) {

    print_r ($row2);

}

 

이렇게 해서 필요한 필드를 접근하시면 될것같네요

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김형김
7년 전
감사합니다 형님 이렇게 어려운건줄 모르고 질문드렸습니다 해보겠습니다

댓글을 작성하려면 로그인이 필요합니다.

e
7년 전

검색 키워드, mysql 다중 테이블 조인 이나 mysql 다중 테이블 쿼리 등으로 구글링 하시면 참조하실만한 관련 자료들이 많이 나옵니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인