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

SQL 질문 드립니다. 하나의 최신글에 두개 게시판 불러오기 채택완료

TEAM 2년 전 조회 1,566

$limit = 15;
$sql= "select * from g5_write_aaa order by wr_id desc limit 0, 50";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {

 

aaa 라는 게시판을 불러오게 했는데..

bbb 라는 게시판도 하나의 최신글에 불러오게 하고 싶어요....

 

혹시 도움을 받을 수 있을까요??? 

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

답변 4개

채택된 답변
+20 포인트
복스리
2년 전

UNION을 사용하여 하나의 2개의 테이블을 1개의 테이블로 볼수 있습니다.

aa라는 별칭을 넣어서 aa.w_id값을 기준으로 정렬후 SELECT로해서 게시판의 내용을 뽑아오시면 될꺼 같습니다.

 

SELECT * FROM (
   SELECT * FROM g5_write_aaa 
   UNION 
   SELECT * FROM g5_write_bbb 
) aa
order by aa.wr_id desc limit 0, 50

 

해보시다 안되시면 쪽지 주세요.

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

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

T
2년 전

모두 감사합니다. 기존 코드에서 변경하고자 했는데 복수리님이 해주신 방법으로 하니 바로 나오네요..

코드 전체는 유료 소스에서 가져온거라 올리지 못하기에 우선 해결된 방법을 아려주신 코드로 적용하였습니다. 정말 다시 한번 모든분들에게 감사합니다.

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

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

SELECT n.bo_table,n.wr_id,n.bn_datetime,
        CASE
            WHEN bo_table = 'aaa'
            THEN (SELECT wr_subject FROM g5_write_aaa WHERE wr_id = n.wr_id)
            
            WHEN bo_table = 'bbb'
            THEN (SELECT wr_subject FROM g5_write_bbb WHERE wr_id = n.wr_id)
        END AS 'wr_subject'

        
FROM g5_board_new AS n
ORDER BY n.bn_datetime DESC 
LIMIT 50

 

 

 

최근게시물 db를 활용한 방법으로 짜봤습니다 ㅎㅎ

최근게시물은 관리자>환경설정 에서 최근게시물 저장 일수를 설정할 수 있으니 참고바래요

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

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

BKH소프트

단점: 이렇게 쓰시면 필드명 같을때 어떤 테이블의 필드명인지 구분이 안됩니다.

1.그래도 상관없다면 저렇게 테이블을 모두 합쳐서 쓰는 방법이 있습니다.

</p>

<p>$limit = 15;

$sql= "SELECT * FROM g5_write_aaa UNION SELECT * FROM g5_write_bbb order by wr_id desc limit 0, 50";

$result = sql_query($sql);

for ($i=0; $row = sql_fetch_array($result); $i++) {</p>

<p>

 

2. for문으 따로 돌려서 사용하는 방법이 있습니다.

</p>

<p>$limit = 15;

$sql= "SELECT * FROM g5_write_aaa UNION SELECT * FROM g5_write_aaa order by wr_id desc limit 0, 50";

$result = sql_query($sql);</p>

<p>$sql= "SELECT * FROM g5_write_bbb UNION SELECT * FROM g5_write_bbb order by wr_id desc limit 0, 50";

$result2 = sql_query($sql);</p>

<p>//g5_write_aaa 테이블의 값

for ($i=0; $row = sql_fetch_array($result); $i++) {

    //예로 wr_id출력하고 싶다면

    echo $row['wr_id'];

}</p>

<p>//g5_write_bbb 테이블의 값

for ($i=0; $row2 = sql_fetch_array($result2); $i++) {

    //예로 wr_id출력하고 싶다면

    echo $row2['wr_id'];

}</p>

<p>

각각의 for문을 따로 사용하시면 중복값이 피할 수 있습니다.

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

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

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

로그인