SQL에서 다중 테이블을 모아 하나로 정보를 출력하길 원합니다.

SQL에서 다중 테이블을 모아 하나로 정보를 출력하길 원합니다.

QA

SQL에서 다중 테이블을 모아 하나로 정보를 출력하길 원합니다.

본문

그누보드의 게시판의 경우

g5_write로 하여 각각의 게시판마다 table이 생성이 되는데

여기서 ga, na, da, ra 라는 게시판을

g5_write_ga

g5_write_na

g5_write_da

g5_write_ra

4개의 게시판을 하나의 내용으로 출력 하고 싶습니다.

 

join 사용법을 보았으나, 주로 비교 대상이 있어서 where 에서 비교를 해주더라구요.

하지만 제가 원하는건 이 4개의 테이블을 하나의 테이블처럼 사용하기를 희망 합니다...ㅠ

<?php 

$sql = "";

이곳에 어떤 값을 줘야 할까요? ㅠㅠ

$result = sql_query($sql);

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

}

?> 

이 질문에 댓글 쓰기 :

답변 5

for구문을 통해서 각 값들을 배열로 저장하셔서 불러오시면 될 것 같은데요

$wrTable = array("qa","na","da","ra");

$wrTableCnt = count($wrTable);

$startNum = 0; 

for($i=0; $i<$wrTableCnt; $i++) {

  $wrTables = $g5['write_prefix'].$wrTable[$i]; 

  $sql = " select * from ".$wrTables;

  $result = sql_query($sql);

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

    $list[$startNum] = $row;

    $startNum++; 

  }

}

대충 요런식으로 하면 $list[$i] 에 값이 다들어가겠지요 

저의 경우는 이게 정석인지 꼼수인지 모르겠으나 

 

각각 불러온 $result array를 array_merge 해서 한방에 보여주고 있습니다;;;

union all 쓰셔도 되고 ceoseo 님이 말씀하시는 것처럼 배열에 담아도 괜찮습니다.

상황에 따라서 달라지는 거니 현재 상황에 맞게 하셔야 할 것 같네요.

참고로 그누보드에서 제공하는 sql_query 이런 함수들은 union all을 원천적으로 막습니다.

그러니 mysql_* 함수 사용하셔야 하겠네요. 

바쁘신 와중에 소중한 답변을 주셔서 감사합니다.
현재 union all을 사용한 정보를 구글에서 검색해보고 있습니다.
마땅히 ㅠ 정보를 못찾고 있습니다.
간단하게나마 예제라도 ㅠㅠ 볼수 있을까요?

$query = mysql_query("SELECT * FROM (SELECT * FROM g5_write_qa UNION ALL SELECT * FROM g5_write_na) AS tbl");
while($rows = mysql_fetch_array($query)) {
    echo $rows['wr_subject'];
}
저런 식으로 붙이면 됩니다.
대신 union all로 연결하려는 테이블의 칼럼수는 전부 같아야 합니다.
다르다면 그냥 배열을 사용하시는 게 편할 겁니다.

얼마전에 도움도 얻었고 해서 지나가나가... 

 

방법이 해결됐는지 모르겠습니다 만...

 

위의 게시판들이 하나의 그룹이면 그룹 최신글로 불러오면 쉽게 해결되지 않을까요?

검색하다가 제가 현재 필요한 방법이어서 질문드려요 혹시 방법은 해결하셨나요?

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

회원로그인

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