【问题标题】:MYSQL: Select MAX date from multiple columnsMYSQL:从多列中选择最大日期
【发布时间】:2014-10-22 14:41:26
【问题描述】:

我遇到了 SQL 查询问题。 这是我的采购表:

id       email                status       date
1        user1@server.com     confirmed    2014-10-01
2        user1@server.com     confirmed    2014-10-02
3        user2@server.com     pending      2014-10-02
4        user3@server.com     pending      2014-10-02
5        user1@server.com     pending      2014-10-03
6        user3@server.com     pending      2014-10-03
7        user1@server.com     pending      2014-10-04
8        user2@server.com     pending      2014-10-04
9        user2@server.com     pending      2014-10-05

我想为每封电子邮件选择最近的待处理购买,所以我期望的结果是:

id      email                 status       date
6       user3@server.com      pending      2014-10-03
7       user1@server.com      pending      2014-10-04
9       user2@server.com      pending      2014-10-05

有什么想法可以实现吗?
提前致谢。

【问题讨论】:

    标签: mysql group-by max maxdate


    【解决方案1】:

    您可以使用子查询来做到这一点:

    select p.*
    from purchase p join
         (select email, max(id) as maxid
          from purchase
          where status = 'pending'
          group by email
         ) pmax
         on p.id = pmax.maxid;
    

    这假定“最近的”是具有最大 id 的那个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多