我有 2 个表:
表“A”:
Old_eid new_eid
<null> <null>
a <null>
b <null>
c <null>
表“B”:
eid1 eid2
a d
b e
c f
我想按如下方式更新表“A”:
Old_eid new_eid
<null> <null>
a d
b e
c f
我提出了以下查询,但它给了我一个错误:
UPDATE A
SET new_eid = (SELECT eid2
FROM A a
JOIN B b ON a.old_eid = b.eid1)
WHERE old_eid IS NOT NULL
但它给了我以下错误:
UPDATE A
SET new_eid = (SELECT eid2
FROM A a
JOIN B b ON a.old_eid = b.eid1)
WHERE old_eid IS NOT NULL
[Amazon](500310) Invalid operation: Invalid Query:
Details:
-----------------------------------------------
error: Invalid Query:
code: 8001
context: single-row subquery returns more than one row
query: 967978
location: 8.cpp:78
process: padbmaster [pid=15160]
-----------------------------------------------;
Execution time: 0.35s
1 statement failed.
我能理解这个错误,因为它导致多行,但我不确定如何得到我想要的。
如何替换这些值?任何帮助将不胜感激。
最佳答案
我能够使用:
UPDATE A
SET new_eid = eid2
FROM B cm
WHERE cm.eid1= old_eid
and old_eidIS NOT NULL
关于mysql - 如何使用 Amazon Redshift 中另一个表的值更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46288044/