2

次の3つのテーブルがあります。

Table1-
num |info
----------
1   |aaaaa  
2   |bbbb
3   |ccc
3   |ccc
4   |dddd

Table2-
num |info
----------
1   |aaaaa
3   |ccc
4   |dddd
5   |eeee
6   |ffff

Table3-
num |info
----------
1   |aaaaa
6   |ffff
2   |bbbb

私が取得したい結果は、

Result-
num |info   num |info   num |info
----------- ----------- ----------
1   |aaaaa  1   |aaaaa  1   |aaaaa
2   |bbbb   NULL|NULL   2   |bbbb
3   |ccc    3   |ccc    NULL|NULL
3   |ccc    3   |ccc    NULL|NULL
4   |dddd   4   |dddd   NULL|NULL
NULL|NULL   6   |ffff   6   |ffff

また

Result 2-
num |info   num |info   num |info
----------- ----------- ----------
1   |aaaaa  1   |aaaaa  1   |aaaaa
2   |bbbb   NULL|NULL   2   |bbbb
3   |ccc    3   |ccc    NULL|NULL
3   |ccc    3   |ccc    NULL|NULL
4   |dddd   4   |dddd   NULL|NULL
NULL|NULL   5   |eeee   NULL|NULL
NULL|NULL   6   |ffff   6   |ffff

与えられた結果のいずれかを取得する方法があれば素晴らしいでしょう:)ありがとうございました:)..私はそのように完全な結合を使用してみました、

    SELECT *
    FROM tbl_1 AS a
    LEFT OUTER JOIN tbl_2 AS b ON a.num = b.num
    UNION
    SELECT *
    FROM tbl_1 AS a
    RIGHT OUTER JOIN tbl_2 AS b ON a.num = b.num

しかし、完全結合がこれを実行するための解決策である場合、2つのテーブルにのみ適していますか?そうでない場合は、指定された3つのテーブルから必要な結果をどのように導き出すことができますか?

検索してみましたが、このタスクを実行するのに役立つものはありませんでした。

そして、私は複数のテーブルに参加する(特別な条件)という質問をしましたが、それは役に立ちませんでした..それが私が再び投稿した理由が不明確かもしれないと思いました:)

4

2 に答える 2

1

以下の以前の質問に投稿されているように、うまくいくはずです:-

  SELECT  a.num numA, a.info infoA,
    b.num numB, b.info infoB,
    c.num numC, c.info infoC
 FROM    table1 a
    LEFT JOIN table2 b
       ON a.num = b.num
    LEFT JOIN table3 c
       ON a.num = c.num
 ORDER BY a.num
于 2012-10-24T10:07:11.890 に答える
0

この質問は@AndreasWederbrandによって解決されました。

3つのテーブルの完全結合

の実装はfull join私のクエリの解決策でした。

この問題に遭遇した人に役立つことを願っています:)

于 2012-10-25T10:50:09.163 に答える