如何在MySQL中组合两个只有一个公共列而另一个不同的表?

如何在MySQL中组合两个只有一个公共列而另一个不同的表?,mysql,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 ===========

我有两张桌子

表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查询来实现这一点呢?
我听说过完全外部连接……但是它是如何在MySQL中实现的呢

您可以使用
JOIN
组合两个表以获得此结果

试试这个

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

使用外部连接将适用于您的情况:

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

执行
左连接
右连接
,然后使用
联合所有
组合它们。请参阅下面我的查询:

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

简单的
FULL JOIN
?我是sql新手,你能写一个例子来实现吗?答案中添加了示例sql查询,你可以添加列名称MySQL不支持FULL-OUTER JOIN,那么还有其他方法吗?在这种情况下,左连接和右连接以及UNION都将解决@Rigel1121所述的问题。不支持外连接吗?那么我如何在sql中实现它呢?同意Rigel1121。