我有点赶时间,所以我知道我可以自己寻找答案,但stackoverflow更快!:)
我有一个数据表,假设它是产品信息。该表跟踪产品数据的更新时间。如果我运行如下查询
SELECT * FROM productChangeLog where change = 'price changed'
我得到的结果就像
id product date change
---------------------------------------------
236 product1 03/14/2011 'price changed'
241 product2 03/14/2011 'price changed'
242 product2 03/14/2011 'description changed'
512 product1 05/16/2011 'price changed'
517 product1 05/16/2011 'description changed'
我想做的是只为每种产品选择最新的“价格变化”。我需要向查询中添加什么,以便只获取第241行和第512行?id越高总是最近的更改
非常感谢!
最佳答案
SELECT t.max_id, t.product, pcl.date, pcl.change
FROM (SELECT product, MAX(id) AS max_id
FROM productChangeLog
WHERE change = 'price changed'
GROUP BY product) t
INNER JOIN productChangeLog pcl
ON t.max_id = pcl.id
关于mysql - mysql基于两个条件进行选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5903925/