Sql HQL:可以对子查询执行内部联接吗?

Sql HQL:可以对子查询执行内部联接吗?,sql,hibernate,hql,Sql,Hibernate,Hql,上图是数据库结构的简化版本,我使用它来记录项目的时间位置。我编写了以下SQL查询,返回每个位置的当前项目库存: select * from ItemLocationLog l inner join (select g.idItemLocationLog, max(g.dateTime) as latest from ItemLocationLog g group by g.idItem) as i on l.idItem = i.idItem and l.dateTime = i.late

上图是数据库结构的简化版本,我使用它来记录项目的时间位置。我编写了以下SQL查询,返回每个位置的当前项目库存:

select * 
from ItemLocationLog l
inner join 
(select g.idItemLocationLog, max(g.dateTime) as latest
from ItemLocationLog g
group by g.idItem)
as i 
on l.idItem = i.idItem and l.dateTime = i.latest
我遇到的问题是,我想将其转换为HQL,但我还没有找到对子查询执行内部联接的语法,而且似乎不支持这种语法。是否有方法将上述内容转换为HQL或条件,或者在这种情况下我必须使用标准SQL查询?谢谢

请注意,HQL子查询只能出现在select或where子句中


您可以重写查询,使子查询成为where子句的一部分。在子查询中引用l.idItem

这会是什么样子?@CarlG Well无需测试并使用问题中的示例。。。大致如下:从ItemLocationLog l中选择l,其中l.dateTime=从ItemLocationLog g中选择maxg.dateTime,其中g.idItem=l.idItem