2011-12-09 3 views
0

우선 테이블에 관계가 없으므로 JOIN을 사용할 수 없습니다.세 테이블의 데이터 선택

다른 데이터가 포함 된 세 개의 테이블이 있는데 한 테이블에서 세 테이블의 모든 데이터를 하나의 쿼리로 표시해야합니다.

예를 들어 내가 가지고 : 포함

Hot News 테이블; title, text, icon 행.

Bad Newstitle, text, icon 행.

Good Newstitle, text, icon 행.

그리고 한 가지 질문으로 모든 뉴스를 철회해야합니다. 가능한가?

+1

누가 가장 빨리 입력 할 수 있습니까? –

+0

@MikeChristensen, 나 - 분명히 :) –

답변

3

사용 UNION : UNION 중복을 제거하는 것이

SELECT title, text, icon FROM `Hot News` 
UNION 
SELECT title, text, icon FROM `Bad News` 
UNION 
SELECT title, text, icon FROM `Good News` 

참고. 중복을 유지하려면 UNION ALL을 대신 사용하십시오.

+1

예제에 추가하려면 "SELECT *"를 사용하는 경우 전체 테이블 구조가 동일해야합니다. 그렇지 않으면 동등한 경우 개별 열을 선택할 수 있습니다. – Matthew

+0

나는 항상 다음과 같은 에러 메시지를 받는다 :'General error : 1271 'UNION' '에 대한 데이터 정렬이 불법적으로 혼합되어있다. – Cyclone

+0

테이블에 다른 문자 집합이있는 것 같습니다. –

1
SELECT Title, Text Icon From HotNews 
UNION ALL 
SELECT Title, Text Icon From BadNews 
UNION ALL 
SELECT Title, Text Icon From GoodNews 
1

:

SELECT title, text, icon, 'News' AS type 
FROM HotNews 
UNION ALL 
SELECT title, text, icon, 'Bad' AS type 
FROM BadNews 
UNION ALL 
SELECT title, text, icon, 'Good' AS type 
FROM GoodNews 

이 당신이 사용자에게이 데이터를 렌더링하는 데 사용하는 어떤 것을 의미 type을 포함하여 수 그것이 어떤 종류의 뉴스인지 말해주십시오.

+0

이 오류가 발생했습니다 :'일반 오류 : 1271 'UNION'작업의 데이터 정렬이 잘못되었습니다 (Mark Byers 응답과 동일). – Cyclone

+0

@Cyclone, 테이블 전체에서 동일한 문자 집합을 사용합니까? –

+0

예,'latin1_swedish_ci'. – Cyclone

관련 문제