MySQL で 3 つのテーブルを使用して FULL OUTER JOIN 操作を実行するにはどうすればよいですか?
P粉852114752
P粉852114752 2023-09-01 21:48:57
0
1
528
<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粉852114752
P粉852114752

全員に返信(1)
P粉176203781

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

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート