合并具有不同记录数的两个表

时间:2017-10-28 17:58:03

标签: mysql excel matlab ms-access

我想要合并两个表:

Table A

Site    Date      Time     Flow

xy-1    9/28/17   10:20    0.11

xy-1    8/13/17   9:59     

xy-1    7/30/17   9:38     0.15


Table B

Site    Date      Time     pH

xy-1    9/28/17   10:20    7.3

xy-1    8/27/17   10:30    7.8

xy-1    8/13/17   9:59     7.9

xy-1    7/30/17   9:38     7.2

我希望输出看起来像这样:

Site    Date      Time     pH   Flow

xy-1    9/28/17   10:20    7.3  0.11

xy-1    8/27/17   10:30    7.8

xy-1    8/13/17   9:59     7.9  

xy-1    7/30/17   9:38     7.2  0.15 

我尝试了各种连接,但由于这两个表具有不同的记录数,因此在连接期间会省略行。寻找SQL语句,Excel公式或Matlab代码。

我想它需要某种比较网站ID和日期的IF语句。如果两个表中的站点ID和日期匹配,则添加流和ph。如果站点ID和日期不同(或者不存在),则会创建一个只包含一个表的记录的新行。

1 个答案:

答案 0 :(得分:1)

在Microsoft Access或MySQL中,UNION查询可以解决问题。

SELECT Site,    Date,      Time,    Null As pH,    Flow 
FROM TableA
UNION ALL
SELECT Site,    Date,      Time,    pH,    Null as Flow 
FROM TableB