我有两张桌子,
表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
-------------------------------------
这里Date是常用字段,那么如何使用MySQL查询来实现这一点呢? 我听说过FULL OUTER JOIN ....但是它是如何在MySQL中实现的?
答案 0 :(得分:2)
执行LEFT JOIN
和RIGHT 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
答案 1 :(得分:0)
您可以使用JOIN
组合两个表来获得此结果
试试这个
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.Date=table2.Date;
答案 2 :(得分:0)
使用外部联接可以适用于您的情况:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;