【发布时间】:2016-08-25 19:03:27
【问题描述】:
如果我有列名为 time、value1 的表 A 以及列名为 time、value2 的表 B。如何使用 sql server 将这两个表合并为一个表,其中包含 time、value1、value2 列?
表A:时间,值1
表 B:时间,值2
输出:
时间,值1,值2
【问题讨论】:
标签: sql-server
如果我有列名为 time、value1 的表 A 以及列名为 time、value2 的表 B。如何使用 sql server 将这两个表合并为一个表,其中包含 time、value1、value2 列?
表A:时间,值1
表 B:时间,值2
输出:
时间,值1,值2
【问题讨论】:
标签: sql-server
你需要的是经典的JOIN:
SELECT t1.time, t1.value1, t2.value2
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.time=t2.time
PS!在某些数据库中,LEFT JOIN 被称为LEFT OUTER JOIN。
【讨论】:
table1 上的时间但在table2 上没有匹配,您将得到以下结果:t1.time,t1.value,NULL
SELECT A.time, A.value1, A.value2
FROM Table1 A
INNER JOIN Table2 B ON A.time=B.time
【讨论】:
一个有趣的方法是:-
SELECT time, value1, '' as value2
from A
UNION ALL
SELECT time, '' as value1, value2
FROM B
【讨论】: