用另一个字段更新字段另一个表

时间:2012-10-30 11:24:04

标签: mysql sql

我想用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行”错误。有人请帮助我。

4 个答案:

答案 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