2016-12-16 137 views
0

我想將多個查詢的結果合併爲一個結果。所有查詢都返回兩個字段,其中一個是通用名稱字段。我想要使​​用名稱字段合併結果。如何將多個查詢的結果合併爲一個結果

例子:

首先查詢結果:

Value Name 
----- ------ 
30  John 
40  Nick 
50  Liam 

第二查詢結果:

Value2 Name 
----- ------ 
30  John 
40  Nick 
50  Joe 

第三個查詢結果:

Value3 Name 
----- ------ 
    30  John 
    40  Tony 
    50  Jack 

我想要的結果看起來像這個:

Value Value2 Value3 Name 
    ..... ...... ..... .... 
    30  30  30 John 
    40  40   Nick 
    50     Liam 
      50   Joe 
        40 Tony 
        50 Jack 
+0

你在這裏什麼是一個統一的查詢。如果您有問題的DDL和DML查詢,這將會有所幫助。 –

+0

[(My)SQL完全連接三個表的可能的重複](http://stackoverflow.com/questions/11410312/mysql-full-join-with-three-tables) – Shadow

回答

2

您可以使用union all和聚集:

select name, 
     max(value1) as value1, 
     max(value2) as value2, 
     max(value3) as value3 
from ((select name, value as value1, null as value2, null as value3 
     from q1 
    ) union all 
     (select name, null as value1, value as value2, null as value3 
     from q2 
    ) union all 
     (select name, null as value1, null as value2, value as value3 
     from q3 
    ) 
    ) q 
group by name; 
+0

'q's做什麼?它們是該自包含查詢的任意表示,還是在其他位置定義的?例如,如果我的表是'C7',那麼我會將它用於所有'from'還是僅僅是最後一個? –

+0

@TravisHeeter。 。 。 「第一查詢結果」,「第二查詢結果」,「第三查詢結果」。 –

相關問題