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_* 함수 사용하셔야 하겠네요.
얼마전에 도움도 얻었고 해서 지나가나가...
방법이 해결됐는지 모르겠습니다 만...
위의 게시판들이 하나의 그룹이면 그룹 최신글로 불러오면 쉽게 해결되지 않을까요?
검색하다가 제가 현재 필요한 방법이어서 질문드려요 혹시 방법은 해결하셨나요?