【发布时间】:2019-01-07 20:35:39
【问题描述】:
表 1:tb1
|ID|Reference|
|1|ABCD|
|2|EFGH|
|3|IJKL|
|4|MNOP|
|5|MNOP|
表 2:tb2
|Reference |UpdatedID |
|ABCD | |
|ABCD | |
|EFGH | |
|EFGH | |
|EFGH | |
|EFGH | |
|IJKL | |
|MNOP | |
|MNOP | |
我需要在tb1的基础上更新表tb2的一个空列。
要加入的公共列是两个表的Reference 列,其中tb1 的ID 将更新为tb1 表的UpdatedID 列。
应用连接列后,记录会增加,因为在tb1 表中相同的Reference 具有不同的 ID,需要在tb2 表中更新相同的 ID。
我应该如何进行。
使用的 JOIN 查询:
select
A.csvRefNumber,
A.reference,
B.reference
from
tb1 A
left join
tb2 B on A.Reference = B.Reference
order by
csvRefNumber
需要的输出:
|Reference |UpdatedID |
|ABCD |1 |
|ABCD |1 |
|EFGH |2 |
|EFGH |2 |
|EFGH |2 |
|EFGH |2 |
|IJKL |3 |
|MNOP |4 |
|MNOP |5 |
【问题讨论】:
-
这里需要详细说明。很难弄清楚,你到底想要什么。你能试着改写你的问题吗?您想将这两个表连接起来看看它们之间有什么相似之处吗?
-
?为什么 MNOP 的两个值会得到不同的 UpdatedID 值?存储这个号码有什么意义?您始终可以在查询时使用
RANK() or DENSE_RANK() over (PARTITION BY Reference)生成该值。 -
+Aaron 这只是我的大数据集中的一个示例数据,其中有多个这样的可用记录。
-
如果 tb2 中有另一个 MNOP,updatedId 是什么?
-
+Ajay Gupta 如果 MNOP 在 tb1 表中获得了 ID 6,那么 6 应该在 tb2 表的 UpdatedID 列中得到更新。
标签: sql sql-server sql-server-2005