2012-06-09 2 views
0

나는 이것을 시도한 적이 없지만 여러 다른 테이블의 데이터를 에코하여 시간 소인으로 정렬하려고합니다. 내가 가지고있는 코드는 booleon으로 생겨 났고 그 이유를 모른다. 당신의 테이블이 UNION 기능의 제약 내에 가정여러 SQL 테이블의 데이터 에코하기

<?php 
$result = mysql_query("SELECT * FROM artists ORDER BY timestamp DESC 
UNION 
SELECT * FROM news ORDER BY timestamp DESC 
UNION 
SELECT * FROM tracks ORDER BY timestamp DESC 
UNION 
SELECT * FROM gigs ORDER BY timestamp DESC 
UNION 
SELECT * FROM feature ORDER BY timestamp DESC"); 

while($row = mysql_fetch_array($result)){echo'News: <a  href="index.html">'.$row['name'].$row['title'].$row['trackname'].$row['gigname'].'</a><br>'  ;} 

?> 
+4

는 UNION 내의 각 SELECT 문은 동일한 수의 열이 있어야 알고있다. 열은 유사한 데이터 유형을 가져야합니다. 또한 각 SELECT 문의 열은 같은 순서 여야합니다? 다른 테이블에서 데이터를 선택하려면 JOIN을 사용하는 것이 좋습니다. – Nazin

+3

select *는 노조를 사용하지 않을 때에도 일반적으로 좋지 않습니다. –

+0

그 사실을 몰랐습니다. 나는 전에 UNSION을 사용한 적이 없습니다. 이러한 요구 사항없이 원하는 것을 어떻게 얻을 수 있습니까? –

답변

0

..

시도 :

SELECT * FROM 
    (SELECT * FROM artists ORDER BY timestamp DESC 
    UNION 
    SELECT * FROM news ORDER BY timestamp DESC 
    UNION 
    SELECT * FROM tracks ORDER BY timestamp DESC 
    UNION 
    SELECT * FROM gigs ORDER BY timestamp DESC 
    UNION 
    SELECT * FROM feature ORDER BY timestamp DESC) as temp 
ORDER by timestamp DESC; 
+0

각 테이블은 노동 조합의 제약 조건을 따르지 않았으므로 별도로 주문해야했습니다. AJAX 솔루션이 있습니까? 페이 스북 뉴스 피드와 유사해야합니다. –

관련 문제