【发布时间】:2013-09-29 19:57:34
【问题描述】:
我有休闲表结构
|id|product_id|date|buyer_id|seler_id|
作为查询的结果,我需要 不重复,product_id 具有最大日期并与其对应的 buy_id 以及此 product_id 的买家数量
【问题讨论】:
标签: mysql select count duplicates max
我有休闲表结构
|id|product_id|date|buyer_id|seler_id|
作为查询的结果,我需要 不重复,product_id 具有最大日期并与其对应的 buy_id 以及此 product_id 的买家数量
【问题讨论】:
标签: mysql select count duplicates max
select t.*
from your_table t
inner join
(
select product_id, max(date) as mdate
from your_table
group by product_id
) x on x.product_id = t.product_id and x.mdate = t.date
【讨论】:
子查询获取每个product_id 的最新日期。要获取其他列,您需要在两个条件下加入表本身的子查询,即它与 product_id 和 date 匹配。
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT product_id, MAX(date) date
FROM tableName
GROUP BY product_id
) b ON a.product_id = b.product_id AND
a.date = b.date
这也可以使用相关子查询来完成,
SELECT a.*
FROM tableName a
WHERE a.date =
(
SELECT MAX(date) date
FROM tableName b
WHERE a.product_id = b.product_id
)
【讨论】: