用于查找具有相同列值的多行的SQL查询

时间:2016-02-11 03:32:07

标签: mysql sql database join

我有一个带有名为email的列的用户表和一个名为enabled的列。我希望找到所有使用相同电子邮件的用户。如果其中一个用户启用为nil,我想将该用户的登录重置为其名字(另一列)。注意:最多应有两个用户共享电子邮件。

我刚刚开始学习SQL。我如何使这个查询工作?我很感激耐心!

update users
set users.login = users.first_name
from users u1 inner join users u2
on u1.email = u2.email 
  where u1.id != u2.id
  and u2.enabled is null

我的RDBMS是MySQL!

1 个答案:

答案 0 :(得分:0)

如果您正在使用MySQL,那么

update users u1 
join users u2 on
u1.email = u2.email and u1.enable is null
set u1.login = u1.first_name

sql fiddle demo