mysql在IN查询

时间:2016-09-24 17:34:42

标签: java mysql database

我是mysql的初学者,我有两个表。日志表包含(电子邮件,日期时间,值),另一个是存在电子邮件的tmp。

我进行查询

select distinct email, datetime 
from Log 
where email in (select email from tmp) 
group by email;

结果是:

| email                      | datetime            |
+----------------------------+---------------------+
| aaa@gmail.com              | 2014-02-06 14:08:28 |
| bbb@gmail.com              | 2014-05-22 18:53:39 |
| cc@gmail.com               | 2014-05-22 18:51:19 |
+----------------------------+---------------------+

但是我需要datetime应该是最新的,这个查询选择第一个日期(更早)。我应该更改什么才能获得最新日期?

3 个答案:

答案 0 :(得分:0)

由于您使用组的事实,您可以使用像max()这样的聚合函数,如果您想要更新,否则您可以使用min()

  select email, max(datetime )
  from Log 
  where email in (select email from tmp) 
  group by email;

并且您不需要使用分组

答案 1 :(得分:0)

试试这个

select distinct email, datetime 
from Log 
where email in (select email from tmp) 
group by email
ORDER BY datetime desc

答案 2 :(得分:0)

你可以使用max:

select distinct email, max(datetime) 
from Log 
where email in (select email from tmp) 
group by email;