2016-12-16 20 views
0

複数のクエリの結果を1つの結果にまとめたいとします。すべてのクエリは2つのフィールドを返します。そのうちの1つは共通で、名前フィールドです。名前フィールドを使用して結果をマージしたい。複数のクエリの結果を1つの結果に結合する方法

例:

まずクエリ結果:

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

2番目のクエリ結果:

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)3つのテーブルを持つ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'は何をしますか?それらは、自己完結型クエリの任意の表現ですか、あるいは他のどこかで定義されていますか?例えば、私のテーブルが 'C7'なら、私は' from'や 'last'の全てに使っていますか? @TravisHeeter。 –

+0

。 。 「第1の照会結果」、「第2の照会結果」、「第3の照会結果」。 –

関連する問題