sql - 根据不同表中的键查询更新表

标签 sql sql-server

我正在弄清楚如何与查询进行映射(基于键)。我得到的答案是这样的,

UPDATE Table1
   SET group1 = CASE customer_code
       WHEN 'a' THEN 'groupAB'
       WHEN 'b' THEN 'groupAC'
   END,
   group2 = CASE customer_code
       WHEN 'a' THEN 'group12'
       WHEN 'b' THEN 'group13'

   END
WHERE customer_code IN ('a','b') 

但是,当有这么多键时,例如我有一百多个键,将其映射并更新到表中,需要付出很大的努力。

我的问题是,是否有任何查询可以根据两个表中的相同键轻松更新。我收到这个查询,

update Table1 t1
set
  (
    t1.group1
      ) = (
    select
      t2.group2
    from
      Table2 t2
    where
      t2.name2 = t1.name1
     )

但是,我总是收到错误消息,例如“第 2 行:'t1' 附近的语法不正确” 使用别名在这里不能正常工作吗?

提前致谢。

最佳答案

使用此语法:

UPDATE
    Table1
SET
    Table1.group1 = Table2.group2
FROM
    Table1
INNER JOIN
    Table2
ON
    Table1.name = Table2.name

关于sql - 根据不同表中的键查询更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022043/

相关文章:

mysql - 如何在 node.js 的 typescript-sequelize 中使用 'or' 选项?

php - 如何在全文搜索SQL中获取与列值匹配的字符串

java - Oracle 和 SQL Server 上的 hibernate

android - 如何从我的 GPS 坐标中获取附近的位置?

mysql - 将 SQL Server SQL 查询转换为 MySQL

c# - 一个 MySQL 查询,将从两个表运行检查,如果 true 显示在 C# datagridview 中

mysql - 如何在sql中添加同时具有字符串和自动递增数字的ID

python - Django 复杂查询

sql-server - SQL Server 索引 View

c# - 如何使用结果映射将 dapper 结果转换为字典