-1

クエリに参加する必要のあるテーブルが4つあります。表1のすべての結果が必要であり、次に表1、2、3の結果を結合したい。このクエリの書き方がわかりません。

これが私の最善の推測です:

SELECT
 *
FROM
 t1
INNER JOIN
(
 t2 on t2.id = t1.id
 FULL OUTER JOIN t3 on t3.id = t1.id
 FULL OUTER JOIN t4 on t4.id = t1.id
)

さまざまな種類の結合について説明しているこの投稿を見つけました。このことから、table1の左結合または右結合のいずれかが必要だと思いますが、ネストされたステートメントについて混乱しています。

4

1 に答える 1

2

あなたの質問の鍵は、テーブル 1 のすべての結果が必要だということです。これは、左外部結合を意味します。

    select *
    from t1 left outer join
         t2
         on t1.id = t2.id left outer join
         t3
         on t1.id = t3.id left outer join
         t4
         on t1.id = t4.id

左外部結合は、「最初」または「前」のテーブルのすべてのレコードを保持しますが、2 番目のテーブルのレコードは保持しません。t1 から開始するため、これらのすべてのレコードは t2 に一致するものだけで保持されます。

于 2012-08-31T16:19:06.070 に答える