根据查找表填充字段

时间:2018-04-16 11:59:08

标签: sql

我有一个关于如何根据另一个数据库表中的值填充一个数据库表中的字段的问题。基本上,我有一个表作为查找表。它有一个代码列表( A列)和相应的消息,如下所示。它有点静态,有时会手动添加20多个代码和消息以及新值的潜在可能性:

表A - 查看表

Column A |  Column B
  AA101  |  Message 1
  AA102  |  Message 2
  AA103  |  Message 3
  AA104  |  Message 4
  AA105  |  Message 5

另一个表具有可变记录,其中根据用户输入检索上述代码。它有很多列,但最后两列应该是相同的:

表B - 数据表

Column Y |  Column Z
  AA105  |  [Retrieve Message 5]
  AA102  |  [Retrieve Message 2]
  AA101  |  [Retrieve Message 1]

我想要做的是遍历列Y 中的代码列表,与查询表中的A列中的代码列表进行比较)并且这些代码的foreach将检索相应的消息(即将消息加载到列Z )。任何人都可以告诉我如何通过SQL查询实现这一目标吗?

注意:表B中的所有记录每晚都会被删除/截断,因此不存在数据过大或过载的风险。

非常感谢您的帮助。 非常感谢!

1 个答案:

答案 0 :(得分:1)

我猜这些不是真正的表/列名称,但即便如此,这是一个简单的UPDATE查询?

UPDATE
    B
SET
    [Column Z] = A.[Column B]
FROM
    [TABLE B] B
    INNER JOIN [TABLE A] A ON A.[Column A] = B.[Column Y];

取决于您的数据库支持的SQL风格。

相关问题