MySQL中选择行的日期

时间:2017-06-19 12:03:39

标签: mysql

我有一个问题:从MySQL中的一组特定行捕获最新日期。

例如:假设我有一个带有ID,客户ID和购买日期的采购表。

enter image description here

如果我根据客户端ID = 1进行选择,我必须捕获id = 2的购买。

4 个答案:

答案 0 :(得分:1)

这样做的一种方法是加入子查询,查找每个客户的最新购买日期。

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
    SELECT client_id, MAX(purchase_date) AS max_purchase_date
    FROM yourTable
    GROUP BY client_id
) t2
    ON t1.client_id     = t2.client_id AND
       t1.purchase_date = t2.max_purchase_date
-- WHERE client_id = 1

答案 1 :(得分:0)

这就是你想要的吗?

SELECT Id, `client id`, MAX(`date of purchase`)
FROM your_db
WHERE `client id` = 1

此外,如果您只想返回1行,那么

{{1}}

答案 2 :(得分:0)

SELECT id, client_id, DATE_OF_PURCHASE 
FROM purchasing 
GROUP BY DATE_OF_PURCHASE 
HAVING MAX(DATE_OF_PURCHASE)

尝试以上代码。

希望这会有所帮助。

答案 3 :(得分:0)

如果你想要整行,你可以用几种方式做到这一点,但想想“过滤”而不是“聚合”:

select t.*
from t
where (client_id, date_of_purchase) in (select client_id, max(date_of_purchase)
                                        from t
                                        group by client_id
                                       );

当然,有很多方法可以表达类似的逻辑。 。 。将=与相关子查询existsjoin与聚合查询结合使用。