【发布时间】:2012-08-07 14:14:04
【问题描述】:
我有 2 个表 -- 表 1 是主文件,表 2 是活动文件。
关系是一对多。
我正在生成一份报告,而我想要返回的只是每个主文件行都连接到相关主 ID 的最后一个活动行。
我不确定如何请求最后一个活动行。我下面的代码返回每个活动行(理所当然)。
感谢您的帮助。
SELECT *
FROM master_file AS master
INNER JOIN activity_file AS activity ON activity.id = master.id
ORDER BY master.display_name
活动文件有一个名为entry_date 的列。它是记录每个活动的日期和时间戳。我只是想选择最后一个entry_date。
例如:
表 2 - 活动如下所示
ID ACTIVITY ENTRY_DATE
1 Update 2012-08-01 09:00:00
1 Edit 2012-08-01 13:45:15
3 Create 2012-07-15 10:09:52
3 Delete 2012-07-22 23:02:00
3 Add 2012-08-05 04:33:00
4 Edit 2012-08-03 15:12:00
【问题讨论】:
-
你如何定义“最后一个活动行”
-
感谢@BrandonS -- 请参阅我的问题附录
-
entry_date 对于
id是否唯一,如果不是,如果最后一个以上会发生什么情况? -
见@ConradFrix上面的附录
标签: mysql one-to-many greatest-n-per-group one-to-one