g5_city_aa [ca_name | ca_buy | ca_info | ca_day | ca_datetime ] g5_city_bb [cb_name | cb_buy | cb_line | cb_code | cb_day | cb_datetime ] g5_city_cc [cc_name | cc_buy | cc_come | cc_day | cc_datetime ] g5_city_dd [cd_name | cd_buy | cd_top | cd_day | cd_datetime ]
위와 같이 4개의 테이블이 있습니다. 게시판을 하나의 내용으로 출력 하고 싶습니다.
컬럼명도 모두 다릅니다. 위에 작성한 컬럼명은 가져오려는 값입니다.
검색해 보니 컬럼수도 달라서 union 으로도 적합하지 않은거 같습니다.
<?php
$sql = "시간순으로 뿌려주려 합니다. 쿼리문을 어떻게 작성해야 할지요..ㅜㅜ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
}
?>
유사한 의미의 항목끼리 묶고, 다른 의미의 항목은 Null 을 추가하는 방식으로
UNION 항목의 개수와 순서를 맞춰주면 됩니다.
모든 항목을 출력할 필요가 없다면? 공통되는 항목만 추려서 UNION 해도 되구요.
SELECT * FROM (SELECT 'ca' gb , ca_name, ca_buy, ca_day, ca_datetime , ca_info , null cb_line , null cb_code , null cc_come , null cd_top FROM g5_city_aa UNION ALL SELECT 'cb', cb_name, cb_buy, cb_day, cb_datetime, null, cb_line, cb_code, null, null FROM g5_city_bb UNION ALL SELECT 'cc', cc_name, cc_buy, cc_day, cc_datetime, null, null, null, cc_come, null FROM g5_city_cc UNION ALL SELECT 'cd', cd_name, cd_buy, cd_day, cd_datetime, null, null, null, null, cd_top FROM g5_city_dd ) a ORDER BY ca_datetime DESC ;