【发布时间】:2013-02-13 16:15:18
【问题描述】:
我有一个下表:
create table MyData
(
id bigserial primary key,
registered timestamp not null,
deviceID int not null,
someData int,
-- a bunch of other stuff
);
我还有deviceIDs 的列表。此列表中的每个deviceId 在MyData 中都有一堆具有不同registered 时间戳的条目。
我需要的是使用 JPA 查询从具有最新 timestamp 的条目中为每个 deviceId 获取 someData。
当然,我可以编写一个查询来获取单个deviceId 所需的数据,例如
SELECT d.someData from MyData d WHERE d.deviceID =:dev_id ORDER BY registered DESC
添加.setMaxResults(1),为所有deviceIDs 循环。如何将其放入单个查询中?
【问题讨论】:
-
来吧,老兄,把这句话说完——悬念要了我的命!
-
@Raad 抱歉,没有悬念:-]
-
您可以
SELECT d.someData from MyData d WHERE d.deviceID in (SELECT DISTINCT d2.deviceID from MyData d2) ORDER BY registered DESC或SELECT d.someData from MyData d WHERE d.deviceID = :dev_id ORDER BY registered DESC LIMIT 1但不能同时使用 - 您需要为此循环。
标签: sql hibernate postgresql jpa