3
我试图选择具有特定列的最大值,这里的记录是我到目前为止有:JPQL选择记录与最高值
select o from Order o
where o.orderNumber = :orderNumber
and o.version =
(select max(o.version) from Order o where o.orderNumber = :orderNumber)
这似乎是生成SQL:
SELECT *
FROM Order
WHERE ordernumber = :orderNumber
AND orderversion = (SELECT Max(orderversion)
FROM order
WHERE ordernumber = :orderNumber);
我觉得下面的SQL效率会比较高:
SELECT *
FROM order ord
INNER JOIN (SELECT ordernumber,
Max (version) AS version
FROM order
WHERE ordernumber = :ordernumber
GROUP BY ordernumber) mx
ON ord.ordernumber = mx.ordernumber
AND ord.version = mx.version;
反正我可以表达这在JPQL中?
(大部分为与在特定领域具有最大值选择记录问题在线回答似乎表明我送了一上述JPQL ...)
您正在使用哪个数据库引擎? – Jorge
我使用Oracle和Hibernate作为我的JPA提供程序。 –