mysql - 从表中选择最新的不同电子邮件地址

标签 mysql

非常快的一个:

我以前也这样做过,但现在脑子一片空白。

SELECT max(id) as id, username, email 
FROM user_info 
WHERE username!='' 
GROUP by id,email

不幸的是,这不起作用。它将选择最大 ID,但不会选择该行中的相应数据。

最佳答案

如果每个电子邮件地址有多个 ID,则可以使用 max(id)并仅按电子邮件进行分组。

SELECT max(id) as id, username, email 
FROM user_info 
WHERE username <> '' 
GROUP by email, username 

<罢工>

您可以使用子查询,该子查询将返回子查询中的最大 id,然后使用它在表上自连接以返回最新的 id、用户名和电子邮件:

SELECT u.id, u.username, u.email 
FROM user_info u
INNER JOIN
(
  select max(id) maxid, email
  from user_info
  where username <> '' 
  group by email
) u2
  on u.id = u2.maxid

参见SQL Fiddle with Demo

关于mysql - 从表中选择最新的不同电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746010/

相关文章:

mysql - Mobilink 与 Linux 上的 MySQL

php - 在数据库中存储 session

mysql - 将一个表的属性内容复制到rails中另一个表的属性

mysql - 根据子查询计数返回 MYSQL 结果?

php - 如何同时从两个表中获取数据 PDO

php - MySQL 日期重复

javascript - 无法读取未定义的属性 'findAll'

php - 使用 PHP 对不同字段的 mysql 输出进行排序

sql - MySQL改变外键类型

mysql - 从 tmp 数据库中的表插入和更新到另一个数据库中的表