2013-03-06 4 views
7

나는 몇 가지 하위 쿼리로 구성된 하나의 복잡한 쿼리를 작성하려고합니다. 아이디어는 주간 단위로 실행하여보고 데이터를 가져 오는 비즈니스 담당자에게주는 것입니다.MySQL 데이터베이스에서보고를 위해 여러 SELECT 하위 쿼리에서 데이터 가져 오기

효과는 많은 테이블의 모든 데이터가 한 결과에 표시되는 아래 쿼리와 비슷합니다.

select * from table1, table2, table3 

그래서 나는 비슷한 것을 필요로하지만 작동하지 않습니다.

select 
    (select * from table1 where ......) as table1, 
    (select * from table2 where.......) as table2 

수동으로 하위 쿼리를 개별적으로 실행 한 다음 수동으로 결과를 하나의 큰 Excel 시트에 추가 할 수 있습니다. 그러나 저는 비즈니스 담당자가이를 쉽게 수행하고 오류를 최소화하기를 원합니다.

MySQL에서 가능합니까?

이 이유는 레거시 Oracle PIVOT SQL 문을 MySQL 동등한 것으로 변환하기 때문에 하위 쿼리가 꽤 복잡합니다.

필요한 경우 Oracle SQL을 제공 할 수 있습니다.

항상 그렇듯이 감사드립니다. 일부 후

+0

오라클 SQL이 실제로 도움이 될 것입니다. – Sebas

답변

10

주위 하구 : 내가 제대로 이해하면

select * from 
    (select * from table1 where survey_user_id=4) as T1 
    , 
    (select * from table2 where survey_field_type_id=100) as T2 
    , 
    (select * from table3 ) as T3 
5

방금 ​​필요 UNION : D 주석에 기재하는

(SELECT column1 AS name1, column2 AS name2 FROM table1 WHERE ......) 
UNION 
(SELECT column3 AS name1, column4 AS name2 FROM table2 WHERE ......) 
UNION 
.... 

으로, 열 (당신 같은 이름을 가질 필요 별칭을 사용할 수 있습니다.) 동일한 순서로 유지하십시오.

+1

열이 동일한 순서와 데이터 형식 인 경우, 그렇지 않으면 초크가됩니다. – DRapp

+0

오른쪽, 이미 편집 됨, thx :) – tkeram

+0

유니온은 각 쿼리의 결과를 결과 집합과 열이 정렬된다는 가정하에 추가합니다. @ user1775967의 솔루션을 사용하면 행이 정렬되었다는 가정하에 모든 쿼리에서 열을 선택할 수 있습니다. – Mouscellaneous

0
select main.*, 
(select col from tbl1 where tbl1.id=main.id) as col1, 
(select col from tbl2 where tbl2.id=main.id) as col2, 
(select col from tbl3 where tbl3.id=main.id) as col3 
from master as main 
+0

질문에 대답 할 때, 무엇을하고 있는지 또는 왜 원래 질문을 해결하는지에 대한 설명을 추가하십시오. –

관련 문제