2010-07-15 3 views
0

나는 두 개의 테이블 x와 y를 가지고있다. 이 x 테이블에는 국가가 x1, 국가가 x2, y 테이블의 국가가 y1, y2의 국가가 있습니다. 이 데이터의 경우,이 두 개의 표에서 네 개의 국가 필드를 사용하여 별개의 국가 값을 얻는 방법은 무엇입니까? 나는이 같은 하나의 테이블에 하나의 국가를 사용 그 전에 여러 테이블의 여러 필드에서 고유 한 필드 값을 가져 오는 방법은 무엇입니까?

,

$query="select distinct(`x1`) from x"; 

지금, 나는이 두 테이블에 고유 한 값을뿐만 아니라 4 개 개의 국가 값에서 있습니다. 이 때문에 노동 조합이 가능합니다. 하지만 하나의 쿼리를 사용하여 조합 개념을 사용하지 않는 솔루션이 필요합니다.

아이디어를 제공해주십시오. 미리 감사드립니다 ...

+1

왜 'UNION'을 사용할 수 없습니까? 기존 데이터의 예와 반환 할 항목을 제공 할 수 있습니까? – Mike

+0

@Mike 나는 노조와 별도로 다른 대안이나 간단한 방법으로 해결책을 물었습니다. – Karthik

답변

1

아이디어 :없는 가장 효율적인 쿼리 적 UNION

+0

유니온은 괜찮지 만, 다른 해결책이 필요합니다. – Karthik

+0

쓰지 않았을 때 : P는 대안을 생각합니다. – MadH

1

를 사용하지만이 시도 : 그게 정확히 무엇으로,

SELECT `x1` FROM x 
UNION 
SELECT `x2` FROM x 
UNION 
SELECT `y1` FROM y 
UNION 
SELECT `y2` FROM y 
+1

@KM :'UNION'은 뚜렷한 결과를 반환하기 때문에'DISTINCT'를 사용할 필요가 없습니다. 각각의 '선택'. – Mike

+0

@km, @mike - 조합은 괜찮습니다.하지만 다른 해결책이 필요합니다. – Karthik

+0

@Karthik, UNION이 방법입니다. 다른 것이 더 복잡 할 것입니다. 왜 UNION을 사용할 수 없습니까? –

1

연합 (EU)은이 질문에 대한 가장 좋은 대답이다 을 위해 설계. 내가 생각할 수있는

유일한 다른 방법은 전체 외부 조인 것 - 같은 : 그러나

select coalesce(cx.country,cy.country) country 
from (select distinct country from x) cx 
full outer join (select distinct country from y) cy 
on cx.country = cy.country 

을, 당신은 (내가 아는까지) 완전 외부 MYSQL에 조인 할 수 없다 - 그리고 해결 방법에는 노동 조합이 포함됩니다 ...

+0

이것으로 확인하십시오 ... – Karthik

관련 문제