我想用table2中的另一个字段更新table1中的字段。我编写了以下查询,但它无法正常工作。
UPDATE tempdata A
SET A.new_user_id =
(SELECT B.id FROM user B
WHERE A.usr_email = B.usr_email)
它给出了“#1242 - Subquery返回超过1行”错误。有人请帮助我。
答案 0 :(得分:2)
UPDATE tempdata A, user B
SET A.new_user_id = B.id
WHERE A.usr_email = B.usr_email
答案 1 :(得分:1)
即使它是更新语句,您仍然可以连接表。
UPDATE tempdata A
INNER JOIN user B
ON A.usr_email = B.usr_email
SET A.new_user_id = B.id
答案 2 :(得分:1)
请注意,错误意味着在表用户中有超过1行,字段usr_email等于tempdata的1。在使用Salil建议的LIMIT 1 a运行实际更新语句之前检查dupes
答案 3 :(得分:1)
这也是处理这种情况的一种方法
UPDATE A
SET A.new_user_id = B.id
FROM tempdata A
INNER JOIN user B ON A.usr_email = B.usr_email