Wie verwende ich drei Tabellen, um den FULL OUTER JOIN-Vorgang in MySQL auszuführen?
P粉852114752
2023-09-01 21:48:57
<p>考虑以下表:</p>
<pre class="lang-sql Prettyprint-override"><code>Tabelle „t1“ erstellen (
„Datum“ Datum,
`Wert` int
);
Erstellen Sie die Tabelle „t2“ (
„Datum“ Datum,
`Wert` int
);
Erstellen Sie die Tabelle „t3“ (
„Datum“ Datum,
`Wert` int
);
Einfügen in „t1“ („Datum“, „Wert“)
Werte („01.01.2022“, 1),
(„01.03.2022“, 3),
(„01.04.2022“, 4);
Einfügen in „t2“ („Datum“, „Wert“)
Werte („01.01.2022“, 1),
(„01.02.2022“, 2),
(„01.04.2022“, 4);
in „t3“ einfügen („Datum“, „Wert“)
Werte („01.01.2022“, 1),
(„01.02.2022“, 2),
(„01.03.2022“, 3);
</code></pre>
<p><code>t1</code>表缺少<code>2022-02-01</code>日期,<code>t2</code>缺少<code>2022-03-01< /code>,<code>t3</code>缺少<code>2022-04-01</code>
<pre class="brush:php;toolbar:false;">| t1.date | t1.Wert | t2.date | t2.value | t3.date | t3.value |
| | | | | | |
| 01.01.2022 | 1 | 01.01.2022 | 1 | 01.01.2022 | 1 |
| null | null | 01.02.2022 | 2 | 01.02.2022 | 2 |
| 01.03.2022 | 3 | null | null | 01.03.2022 | 3 |
| 01.04.2022 | 4 | 01.04.2022 | 4 | null | null |</pre>
<p>我知道如何在两个表之间进行<code>vollständiger äußerer Join</code>尝试了像这样的查询,但没有产生我想要的结果:</p>
<pre class="lang-sql Prettyprint-override"><code>select *
von `t1`
linke Verbindung zu `t2` am `t2`.`date` = `t1`.`date`
Verknüpfen Sie `t3` mit `t3`.`date` = `t2`.`date` oder `t3`.`date` = `t1`.`date`
Union
wählen *
von `t1`
Rechtsverknüpfung „t2“ auf „t2“. „Datum“ = „t1“. „Datum“.
rechter Join von `t3` auf `t3`.`date` = `t2`.`date` oder `t3`.`date` = `t1`.`date`;
</code></pre></p>
你走在正确的轨道上,但你必须考虑所有的组合 - 3个表 - 4个联合子句。