我正在弄清楚如何使用查询进行映射(基于密钥)。我得到了这样的答案,
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')
但是,如果有很多关键的例子我需要付出很多努力,我有超过一百个密钥,映射它,并将其更新到表格。
我的问题是,是否有任何查询可以根据2个表中的相同键轻松更新。我收到了这个问题,
update Table1 t1
set
(
t1.group1
) = (
select
t2.group2
from
Table2 t2
where
t2.name2 = t1.name1
)
但是,我总是收到错误消息,例如'第2行:' t1' 附近的语法不正确 使用别名在这里没有正常工作吗?
提前致谢。
答案 0 :(得分:4)
UPDATE
Table1
SET
Table1.group1 = Table2.group2
FROM
Table1
INNER JOIN
Table2
ON
Table1.name = Table2.name