如何针对每个id更新所有行

时间:2017-05-05 10:13:32

标签: mysql sql join inner-join

我有一个场景,我有三张桌子。

  

用户(id_useremail ...)

     

登录(id_loginemail ...)

     

广告系列(id_campaignid_userid_login

部分用户已从表用户迁移到登录。广告系列表现在添加了一个新字段id_login,该字段为空。我想更新广告系列表(id_login)字段,其中包含现在在Logins表中相同用户的新ID。电子邮件当然是独一无二的,可用于加入,但我不知道该怎么做?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我现在假设只有用户ID的Campaign表也必须使用登录ID进行更新。

你可以试试这个:

update Campaigns c
set id_login=(
       select id_login from Logins 
       where email like (select email from Users where id_user = c.id_user )
      )
where id_user > 0

答案 1 :(得分:0)

    update Campaigns b
set id_login=(
       select id_login from Logins
       where not exists (select * from Users where email like b.email)
      ); ------