検索

ホームページ  >  に質問  >  本文

MySQL で 3 つのテーブルを使用して FULL OUTER JOIN 操作を実行するにはどうすればよいですか?

<p>次の表を考えてみましょう。</p> <pre class="lang-sql prettyprint-override"><code>テーブル `t1` を作成 ( 「日付」日付、 `値` int ); テーブル`t2`を作成します( 「日付」日付、 `値` int ); テーブル`t3`を作成します( 「日付」日付、 `値` int ); `t1` に挿入 (`日付`、`値`) 値 ("2022-01-01", 1)、 (「2022-03-01」、3)、 (「2022-04-01」、4); `t2` に挿入 (`日付`、`値`) 値 ("2022-01-01", 1)、 (「2022-02-01」、2)、 (「2022-04-01」、4); `t3` に挿入 (`日付`、`値`) 値 ("2022-01-01", 1)、 (「2022-02-01」、2)、 (「2022-03-01」、3); </code></pre> <p><code>t1</code>テーブルがありません<code>2022-02-01</code>日付、<code>t2</code>がありません<code>2022-03-01< ; /code>、t3 がありません 2022-04-01。これら 3 つのテーブルを結合して、次の結果を生成したいと考えています。 </p> <pre class="brush:php;toolbar:false;">| t1.date | t1.value | t2.date | t2.value | t3.date | t3.value | | | | | | | | | 2022-01-01 | 1 | 2022-01-01 | 1 | 2022-01-01 | 1 | | null | null | 2022-02-01 | 2 | 2022-02-01 | 2 | | 2022-03-01 | 3 | null | null | 2022-03-01 | 3 | | 2022-04-01 | 4 | 2022-04-01 | 4 | null | null |</pre> <p>2 つのテーブル間で <code>完全外部結合</code> を行う方法は知っていますが、3 つ以上のテーブル間ではさらに複雑になります。次のようなクエリを試しましたが、期待した結果が得られませんでした: </p> <pre class="lang-sql prettyprint-override"><code>select * 「t1」から left join `t2` on `t2`.`date` = `t1`.`date` left join `t3` on `t3`.`date` = `t2`.`date` または `t3`.`date` = `t1`.`date` 連合 選択する * 「t1」から 右結合 `t2` on `t2`.`date` = `t1`.`date` 右結合 `t3` on `t3`.`date` = `t2`.`date` または `t3`.`date` = `t1`.`date`; </code></pre></p>
P粉852114752P粉852114752458日前531

全員に返信(1)返信します

  • P粉176203781

    P粉1762037812023-09-02 18:31:10

    正しい方向に進んでいますが、3 つのテーブルと 4 つの共用体節など、すべての組み合わせを考慮する必要があります。

    リーリー

    返事
    0
  • キャンセル返事