MySQL Min(),MAX()使用另一个表中的ID

时间:2011-01-20 14:30:15

标签: mysql sql aggregate-functions

我有两个非常简单的MySQL表: Table1 ,其中包含唯一item_id列表,第二个 Table2 ,其中包含使用项ID的记录构成第一个表。 表2 还包含记录的制作日期。这里回顾一下表格的样子:

表1 列: item_id < ---这些是唯一ID

表2 列: item_id,item_title,time_stamp

我需要的是一个MySQL查询,它会给我一个列表,其中包含 Table2 中每个item_id的第一个和最后一个记录的日期。 Table2 必须只查看表1中的item_id,因为 Table2 包含 Table1 中未包含的item_id。换句话说,我正在使用 Table1 进行基于item_id的排序。 非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

SELECT  t2.item_id, MIN(t2.time_stamp), MAX(t2.time_stamp)
FROM    table2 t2
JOIN    table1 t1
ON      t1.item_id = t2.item_id
GROUP BY
        t1.item_id
ORDER BY
        t1.ordering_column

MySQL中,您可以在SELECTORDER BY中使用未分组和未分页的表达式。

答案 1 :(得分:0)

select item_id, maxts.ts, mints.ts
from (select item_id, max(time_stamp) as ts from Table2 group by item_id) maxts
join (select item_id, min(time_stamp) from Table2 group by item_id) mints on maxts.item_id=mints.item_id
join Table1.item_id t1 on t1.item_id=mints.item_id;
相关问题