【发布时间】:2011-10-26 23:23:58
【问题描述】:
我有四张桌子。这些表的结构如下图所示(我只展示了相关的列名)。
User (user_id)
User_RecordType (user_id, recordType_id)
RecordType (recordType_id)
Record (recordType_id, record_timestamp, record_value)
我需要为给定用户有权访问的每个RecordType 找到最新的record_value。时间戳存储为自纪元以来的秒数。
我可以通过查询获得用户可以访问的 RecordTypes:
SELECT recordType_id
FROM User, User_RecordType, RecordType
WHERE User.user_id=User_RecordType.user_id
AND User_RecordType.recordType_id=RecordType.recordType_id;
这个查询没有做的是还为用户有权访问的每个 RecordType 获取最新的 Record。理想情况下,我希望在一个查询中完成所有这些操作,并且不使用任何存储过程。
那么,有人可以借给我一些他们的 SQL-fu 吗?谢谢!
【问题讨论】:
-
我添加了
greatest-n-per-group标签。这个问题在 StackOverflow 上已经回答了几十次了。跟随标签。
标签: mysql join greatest-n-per-group