我有以下表和我需要加入它們:MySQL的 - 連接具有不同行數的3個表到另一
表A
+----+----------+--------+
| ID | Period | Value |
+----+----------+--------+
| 1 |2009-02-01| 20.3 |
| 2 |2009-03-01| 22.5 |
| 3 |2009-04-01| 17.4 |
| 4 |2009-05-01| 16.5 |
| 5 |2009-06-01| 26.5 |
| 6 |2009-07-01| 35.4 |
+----+----------+--------+
表B
+----+----------+--------+
| ID | Period | Value |
+----+----------+--------+
| 1 |2009-04-01| 57.1 |
| 2 |2009-05-01| 56.5 |
| 3 |2009-06-01| 59.8 |
| 4 |2009-07-01| 55.4 |
+----+----------+--------+
表C
+----+----------+--------+
| ID | Period | Value |
+----+----------+--------+
| 1 |2009-03-01| 82.5 |
| 2 |2009-04-01| 87.4 |
| 3 |2009-05-01| 86.7 |
+----+----------+--------+
我的輸出表已經創建的空表,看起來像這樣:
表d
+----+----------+--------+--------+--------+
| ID | Period | ValueA | ValueB | ValueC |
+----+----------+--------+--------+--------+
表A包含了大部分的紀錄我想用它作爲主表。期望的結果是如下:
表d
+----+----------+--------+--------+--------+
| ID | Period | ValueA | ValueB | ValueC |
+----+----------+--------+--------+--------+
| 1 |2009-02-01| 20.3 | NULL | NULL |
| 2 |2009-03-01| 22.5 | NULL | 82.5 |
| 3 |2009-04-01| 17.4 | 57.1 | 87.4 |
| 4 |2009-05-01| 16.5 | 56.5 | 86.7 |
| 5 |2009-06-01| 26.5 | 59.8 | NULL |
| 6 |2009-07-01| 35.4 | 55.4 | NULL |
+----+----------+--------+--------+--------+
我很新到MySQL。我在論壇上看到了類似的問題,試圖找出自己的想法,但沒有成功。
任何幫助表示讚賞。
ANSWER
確定。一些事情。首先問題不重複!這件事看起來更像是一個快速的主持人而不是重複的問題。不,我沒有在這個網站的任何地方找到這個答案,當然也沒有在主持人的回答中提出的建議。
現在有趣的部分。 花了幾個小時後,在創意版主的幫助下,終於找到了工作。正如我在原始問題中所說的,表D已經存在。這是因爲該模型是由第三方應用程序創建和管理的。在這種情況下,Django。這是一個重要的觀點,否則操作會有所不同。我在服務器上也有不止一個模式。 我認爲在這種情況下該查詢的最好方法是使用別名如下:
insert into my_schema.table_d(period, valueA, valueB, valueC)
select A.Period, A.Value, B.Value, C.Value
from my_schema.table_a A
left join my_schema.table_b B
on A.Period = B.Period
left join my_schema.table_c C
on A.Period = C.Period
這是什麼?誘餌投票? –
@ Tiberiu-IonuţStan我所看到的只是格式良好的問題!它期望好的和明確的答案。你可能會說出你的名聲! – sretko