2011-03-24 4 views
1

나는 MySQL에서 다음과 비슷한 것을하고 싶지만, 모든 순열을 시도하면 오류가 발생한다.여러 SELECT 출력을 MySQL의 FROM 절에 어떻게 입력합니까?

SELECT five,six FROM (SELECT 5 AS five),(SELECT 6 AS six); 

내가 SELECT를 사용할 수 있도록 SELECT의 출력 테이블이 인상적이었습니다. 테이블을 삽입 할 수있었습니다.

누가이 구문이 작동하지 않고 MySQL이 제공하는 솔루션을 제공하지 못하게하는 MySQL 구조체의 미묘함을 설명 할 수 있습니까?

나는 그것이 단순해야한다는 것을 안다. 그러나 나는 이것에 대한 답을 찾을 수 없었다.

+0

이 사용중인 MySQL의 어떤 버전의 MySQL에서 잘 작동? – garyj

+0

5.0.37,하지만 내 고용주가 사물을 맞춤 설정할 수 있습니다. – Rob

답변

1

를 추가해보십시오 별칭 :

SELECT five, six FROM (SELECT 5 AS five) AS a, (SELECT 6 AS six) AS b

+0

이것이 효과가 있지만 그 이유는 무엇입니까? – Rob

+0

파생 테이블마다 별칭이 필요합니다. ("AS a", "AS b"쿼리에서) 원래 쿼리에 대한 오류 메시지는 "모든 파생 테이블에 고유 한 별칭이 있어야합니다" –

+0

필드를 사용하여 선택 항목을 사용할 수도 있기 때문입니다. '선택 (5를 5로 선택)을 5로 선택하십시오. ' 별칭이 없으면 MySQL은 하위 선택 항목의 출처를 알 수 없습니다. –

0

당신이 달성하려고하는지 모르겠하지만 그것이

select 5 as five, 6 as six 

의 동일합니다하지만 난 당신을하는 데 도움이되기를 바랍니다 원인

select five,six from (select 5 as five, 6 as six) as t; 

그것은 쓸모가 분명 작동합니다.

+0

예제를 단순화했습니다. 실제로 2 개의 대규모 SELECT 문이 있으므로 병합하기가 훨씬 어려울 것입니다. – Rob