【问题标题】:Select two different id record with most recent datetime?选择两个具有最近日期时间的不同 id 记录?
【发布时间】:2018-07-19 18:58:12
【问题描述】:

我有一个关于 mysql 中的 SQl 查询的问题。我想选择最近日期时间为 id = 1 或 id = 3 的两行

表格记录

 id   |  datetime                |          count
 -------------------------------------------------------
 1    |  2018-01-02 11:00:00     |           1
 2    |  2018-01-02 11:00:00     |           0
 3    |  2018-01-02 11:00:00     |           1
 1    |  2018-01-02 10:55:00     |           0
 2    |  2018-01-02 10:55:00     |           0
 3    |  2018-01-02 10:55:00     |           0
 1    |  2018-01-02 10:50:00     |           1
 2    |  2018-01-02 10:50:00     |           1
 3    |  2018-01-02 10:50:00     |           1

我希望我的查询重新返回最近的交易,应该是:

     id    |  datetime                |          count
 -------------------------------------------------------
      1    |  2018-01-02 11:00:00     |           1
      3    |  2018-01-02 11:00:00     |           1

有人可以给我任何建议吗?

【问题讨论】:

标签: mysql sql


【解决方案1】:

select * from tablename where id in (1, 3) order by datetime desc limit 2

【讨论】:

  • 我要获取 id = 1 和 id = 3 条记录
  • MySQL 不支持TOP 运算符。
【解决方案2】:

尝试联合

SELECT *
FROM
(SELECT * FROM yourTable WHERE id = 1 ORDER BY datetime DESC LIMIT 1) t1
UNION ALL
(SELECT * FROM yourTable WHERE id = 3 ORDER BY datetime DESC LIMIT 1) t2;

【讨论】:

    【解决方案3】:

    使用返回 ID 1 和 3 的最新事务的子查询进行内部联接:

    Select only
         , the
         , columns
         , you
         , actually 
         , want
    FROM myTable tbl
    INNER JOIN
    (
     SELECT 
     id, 
     MAX(datetime) AS most_recent_tran
     FROM myTable
     WHERE ID in (1,3)
     GROUP BY id
    ) temp
    
    ON
    
    WHATEVER I JUST CALLED MY COLUMNS
    
     tbl.ID = temp.ID and tbl.datetime = temp.datetime
    

    【讨论】:

      【解决方案4】:
      select id,
             max(datetime),
             count 
      from t1 where id in (1,3)
      group by id
      

      **t1 是你的桌子

      【讨论】:

        猜你喜欢
        • 2013-08-25
        • 1970-01-01
        • 1970-01-01
        • 2017-09-14
        • 2018-04-20
        • 2021-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多