我正在嘗試加入多個表。
表格1:
| ID | 溫度 | DESC | 麻木的 |
|---|---|---|---|
| 32 | 89 | 是 | 6 |
| 47 | 空值 | 是 | 5 |
| 56 | 43 | ? | 4 |
| 34 | 54 | ? | 3 |
| 22 | 78 | 空值 | 空值 |
表 2
| ID | IND | FLAV |
|---|---|---|
| 32 | 是 | G |
| 47 | ? | G |
| 56 | 是 | R |
| 34 | 是 | 乙 |
| 22 | 是 | 是 |
表3:
| ID | 顏色 | 形狀 |
|---|---|---|
| 32 | 紅色的 | 正方形 |
| 47 | 藍色 | 圓圈 |
| 52 | 空值 | 三 |
| 22 | 橘子 | 空值 |
我想要結果表:
| ID | 溫度 | DESC | 麻木的 | IND | FLAV | 顏色 | 形狀 |
|---|---|---|---|---|---|---|---|
| 32 | 89 | 是 | 6 | 是 | G | 紅色的 | 正方形 |
| 47 | 空值 | 是 | 5 | ? | G | 藍色 | 圓圈 |
| 56 | 43 | ? | 4 | 是 | R | 空值 | 空值 |
| 34 | 54 | ? | 3 | 是 | 乙 | 空值 | 空值 |
| 22 | 78 | 空值 | 空值 | 是 | 是 | 橘子 | 空值 |
| 52 | 空值 | 空值 | 空值 | 空值 | 空值 | 空值 | 三 |
結果 ID 的行順序對我來說并不重要。我試過了:
SELECT *
FROM Table1
INNER JOIN Table2 USING(ID)
LEFT JOIN Table3 USING(ID)
但它遺漏了 ID 52。我想確保沒有遺漏任何一張表中不匹配的 ID。
這在 SQLITE 中可行嗎?
uj5u.com熱心網友回復:
對于這個要求FULL OUTER JOIN,SQLite 不支持正確的連接型別。
一種解決方法是使用回傳所有 3 個表的不同 ID 的子查詢,然后LEFT使用子句連接到表USING:
SELECT *
FROM (SELECT ID FROM Table1 UNION SELECT ID FROM Table2 UNION SELECT ID FROM Table3) t
LEFT JOIN Table1 USING (id)
LEFT JOIN Table2 USING (id)
LEFT JOIN Table3 USING (id);
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/453571.html
上一篇:Pandas在一個連接中加入
