我想更新table1中的字段与table2.table中的另一个字段我写了下面的查询,但它不工作。更新字段与另一个字段另一个表
UPDATE tempdata A
SET A.new_user_id =
(SELECT B.id FROM user B
WHERE A.usr_email = B.usr_email)
它给“#1242 - 子查询返回多于一行”错误。任何人都请帮助我。
我想更新table1中的字段与table2.table中的另一个字段我写了下面的查询,但它不工作。更新字段与另一个字段另一个表
UPDATE tempdata A
SET A.new_user_id =
(SELECT B.id FROM user B
WHERE A.usr_email = B.usr_email)
它给“#1242 - 子查询返回多于一行”错误。任何人都请帮助我。
UPDATE tempdata A, user B
SET A.new_user_id = B.id
WHERE A.usr_email = B.usr_email
我想更新所有行中的字段。 –
这是一个旧的连接语法 –
即使是更新语句,您仍然可以连接表。
UPDATE tempdata A
INNER JOIN user B
ON A.usr_email = B.usr_email
SET A.new_user_id = B.id
请注意,错误意味着在表用户有超过1行与字段usr_email等于tempdata的一个。与限制1通过萨里尔
建议runniing实际更新语句之前检查受骗者这也是处理此之情况
UPDATE A
SET A.new_user_id = B.id
FROM tempdata A
INNER JOIN user B ON A.usr_email = B.usr_email
这是因为你有更多的用户使用相同的电子邮件的一种方式......那么你应该决定采用哪一个ID? –
如果你想根据另一个表的值更新所有字段,请改用join。请参阅下面的答案。 –