MySQL에서 세 개의 테이블을 사용하여 FULL OUTER JOIN 작업을 수행하는 방법은 무엇입니까?
P粉852114752
2023-09-01 21:48:57
<p>考虑以下表:</p>
<pre class="lang-sql Prettyprint-override"><code>`t1` 테이블 생성(
'날짜' 날짜,
'값' 정수
);
테이블 `t2` 생성(
'날짜' 날짜,
'값' 정수
);
테이블 `t3` 생성(
'날짜' 날짜,
'값' 정수
);
`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);
<p><code>t1</code>表缺少<code>2022-02-01</code>日期,<code>t2</code>缺少<code>2022-03-01< /code>,t3
缺少2022-04-01
。我想要将这三个表连接起来,产生以下结果:</p>
<pre class="brush:php;toolbar:false;">| t1.날짜 | t1.값 | t2.날짜 | t2.값 | t3.날짜 | t3.값 |
| | | | | | |
| 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>我知道如何两个表之间进行<code>완전 외부 조인</code>,但是在三个或更多表之间,情况会更复杂。我尝试了image这样的查询,但没有产生我想要的结果:</p>
<pre class="lang-sql Prettyprint-override"><code>선택 *
`t1`에서
`t2`.`date`에 `t2`를 왼쪽 조인 = `t1`.`date`
`t3`.`date` = `t2`.`date` 또는 `t3`.`date` = `t1`.`date`에 왼쪽 조인 `t3`
노동 조합
선택하다 *
`t1`에서
`t2`.`date`에 `t2` 오른쪽 조인 = `t1`.`date`
`t3`.`date` = `t2`.`date` 또는 `t3`.`date` = `t1`.`date`에 `t3`을 오른쪽 조인;
</code></pre></p>
올바른 길을 가고 있지만 모든 조합(테이블 3개, 결합 조항 4개)을 고려해야 합니다.
으아악