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

时间:2012-12-06 14:44:01

标签: mysql

非常快:

我以前做过这个,但现在有点空白。

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

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

2 个答案:

答案 0 :(得分:1)

如果每个电子邮件地址有多个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

答案 1 :(得分:0)

Select DISTINCT(email), MAX(id)
FROM user_info
GROUP by email
ORDER BY id DESC