Mysql SQL查询以查找具有相同列值的多行

Mysql SQL查询以查找具有相同列值的多行,mysql,sql,database,join,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 wher

我有一个用户表,其中一列名为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

如果您使用的是
MySQL

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

如果您使用的是
MySQL

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

您的RDBM是什么?update命令在大多数情况下可能会有所不同。很棒的调用-它的mysqlrdbm是什么?update命令在大多数情况下可能会有所不同