2017-10-19 1 views
0

3 개의 SELECT FROM이 있는데 하나의 테이블에서 3 개의 결과를 병합하고 싶습니다. 하나의 SELECT *를 사용할 수없고 3 개의 테이블에 대해 JOIN을 사용할 수 없습니다.여러 테이블, 열이 순서대로 병합되지 않음

키로 사용되는 A 및 B 열을 사용하여 테이블을 병합 할 수 있습니다. 열이 같은 순서가 아닌 3 개의 병합 된 테이블에 대해 최종 UNION을 수행해야합니다.

예 :

SELECT A, B, C, D, E, F, G, H, I 
FROM Table 
UNION ALL 
(
    SELECT A, B, F, G FROM Stuff 
    --JOIN?MERGE?WhatHere? 
    SELECT A, B, E, C FROM otherStuff 
    --JOIN?MERGE?WhatHere? 
    SELECT A, B, D, H FROM otherstuffbis 
    I --adding null value to columns 
) 
+0

'MySQL' 또는'SQL-Server'를 시도? 하나를 선택. – waka

+0

죄송합니다, 자동 완성, SQL Server –

답변

1

SELECT A, B, C, D, E, F, G, H, I 
FROM Table 
UNION ALL 
(


    SELECT 
    A, 
    B, 
    NULL AS c, 
    NULL AS D, 
    NULL AS E, 
    F, 
    G , 
    NULL AS H, 
    NULL AS I 
    FROM [stuff] 


    SELECT 
    A, 
    B, 
    c, 
    NULL AS D, 
    E, 
    NULL AS F, 
    NULL AS G , 
    NULL AS H, 
    NULL AS I 
    FROM [otherStuff] 

    UNION ALL 

    SELECT 
    A, 
    B, 
    NULL AS c, 
    NULL AS D, 
    E, 
    NULL AS F, 
    NULL AS G , 
    H, 
    NULL AS I 
    FROM [otherstuffbis] 


) A 
관련 문제