Pat*_*bug 3 mysql sql postgresql amazon-redshift
我有 2 张桌子:
表“A”:
Old_eid new_eid
<null> <null>
a <null>
b <null>
c <null>
Run Code Online (Sandbox Code Playgroud)
表“B”:
eid1 eid2
a d
b e
c f
Run Code Online (Sandbox Code Playgroud)
我想更新表“A”如下:
Old_eid new_eid
<null> <null>
a d
b e
c f
Run Code Online (Sandbox Code Playgroud)
我提出了以下查询,但它给了我一个错误:
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
Run Code Online (Sandbox Code Playgroud)
但它给了我以下错误:
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.
Run Code Online (Sandbox Code Playgroud)
我可以理解该错误,因为它导致了不止一行,但我不确定如何获得我想要的内容。
如何替换这些值?任何帮助将非常感激。
我能够使用以下方法来做到这一点:
UPDATE A
SET new_eid = eid2
FROM B cm
WHERE cm.eid1= old_eid
and old_eidIS NOT NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7755 次 |
| 最近记录: |