【发布时间】:2014-03-12 05:52:11
【问题描述】:
我已经搜索了几个小时,但我的问题没有具体的答案。
我有两张表,例如:
表 A
DateAndTime ms us F1 F2 F3
2012-07-07 00:00:00.000 0 0 1 1 1
2012-07-07 01:07:40.000 750 361 1 0 1
2012-07-07 01:07:41.000 50 11 1 0 1
2012-07-07 01:08:35.000 850 998 1 0 0
2012-07-07 01:08:36.000 50 83 1 0 0
2012-07-07 01:08:59.000 250 26 0 0 0
表 B
DateAndTime ms us F4 F5 F6
2012-07-07 00:00:00.000 0 0 1869 11 2247
2012-07-07 00:00:00.000 0 588 1869 15 2247
2012-07-07 00:05:14.000 987 359 1869 13 2251
2012-07-07 00:05:16.000 45 493 1869 11 2247
2012-07-07 00:14:15.000 985 557 1869 11 2157
2012-07-07 00:14:16.000 945 179 1869 11 2279
我正在寻找的结果是合并这两个表:
结果表
DateAndTime ms us F1 F2 F3 F4 F5 F6
2012-07-07 00:00:00.000 0 0 1 1 1 1869 11 2247
2012-07-07 00:00:00.000 0 588 NULL NULL NULL 1869 15 2247
2012-07-07 00:05:14.000 987 359 NULL NULL NULL 1869 13 2251
2012-07-07 00:05:16.000 45 493 NULL NULL NULL 1869 11 2247
2012-07-07 00:14:15.000 985 557 NULL NULL NULL 1869 11 2157
2012-07-07 00:14:16.000 945 179 NULL NULL NULL 1869 11 2279
2012-07-07 01:07:40.000 750 361 1 0 1 NULL NULL NULL
2012-07-07 01:07:41.000 50 11 1 0 1 NULL NULL NULL
2012-07-07 01:08:35.000 850 998 1 0 0 NULL NULL NULL
2012-07-07 01:08:36.000 50 83 1 0 0 NULL NULL NULL
2012-07-07 01:08:59.000 250 26 0 0 0 NULL NULL NULL
两个表中的 PRIMARY KEY 由 (DateAndTime, ms, us) 组成。
如果两个表具有相同的主键,则数据可以合并到同一行,否则应该只是在没有数据的地方出现带有 NULL 的新行。
列名并不总是相同,因此我必须使用 C# 动态构建查询,然后执行它。在开始用 C# 处理数据之前,我只是想在 SQL 服务器端做尽可能多的工作。
【问题讨论】:
-
尝试使用
LEFT JOIN
标签: sql sql-server join