2015-02-09 24 views
3

我有兩個表,如何在MySQL中只包含一個公共列和其他不同的兩個表?

表1:

Date | Amt | Name 
==================== 
2/5/15 | 100 | abc 
-------------------- 
3/5/15 | 150 | xyz 
-------------------- 
3/5/15 | 170 | pqr 
-------------------- 
5/5/15 | 190 | zzz 
-------------------- 

表2:

Date | Amt1 | Name1 
==================== 
2/5/15 | 130 | www 
-------------------- 
3/5/15 | 110 | eee 
-------------------- 
5/5/15 | 180 | rrr 
-------------------- 

我的輸出應該是:

Date | Amt | Name | amt1 | Name1 
===================================== 
2/5/15 | 100 | abc | 130 | www 
------------------------------------- 
3/5/15 | 150 | xyz | 110 | eee 
------------------------------------- 
3/5/15 | 170 | pqr | - | - 
------------------------------------- 
4/5/15 | 190 | zzz | - | - 
------------------------------------- 
5/5/15 | - | - | 180 | rrr 
------------------------------------- 

下面的日期是常見的領域,因此,如何能我使用MySQL查詢來完成此操作? 我聽說過FULL OUTER JOIN ....但它是如何在MySQL中實現的?

+0

簡單'完全聯接? – 2015-02-09 04:58:43

回答

2

執行LEFT JOINRIGHT JOIN ,然後使用UNION ALL進行組合。看到我的查詢如下:

SELECT A.Date,Amt,Name,Amt1,Name1 FROM Table1 A LEFT JOIN Table2 B ON A.Date=B.Date 
UNION ALL 
SELECT B.Date,Amt,Name,Amt1,Name1 FROM Table1 A RIGHT JOIN Table2 B ON A.Date=B.Date 
0

可以使用JOIN兩個表結合起來,得到這樣的結果

試試這個

SELECT * 
FROM table1 
FULL OUTER JOIN table2 
ON table1.Date=table2.Date; 
+0

我是新來的SQL,所以你可以寫一個例子來實現這個? – 2015-02-09 04:59:33

+0

在答案中增加了示例sql查詢,可以添加列名 – Nick 2015-02-09 05:02:25

+0

MySQL中不支持FULL OUTER JOIN,那麼有沒有其他方法? – 2015-02-09 05:14:47

0

使用外連接會爲你的情況下工作:

SELECT column_name(s) 
FROM table1 
FULL OUTER JOIN table2 
ON table1.column_name=table2.column_name; 
+0

不支持OUTER JOIN?那麼我怎麼能在sql中實現它? – 2015-02-09 05:28:49

+0

同意Rigel1121。 – 2015-02-09 05:33:40

相關問題