HQL: è possibile eseguire un JOIN INTERNO su una sottoquery?
Lo schema precedente è una versione semplificata della struttura del database che utilizzo per registrare le posizioni delle posizioni nel tempo. Ho scritto la seguente query SQL che restituisce l'inventario voce corrente di ogni luogo:
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
Il problema che sto avendo è che voglio convertire tale a HQL, ma non ho trovato la sintassi per eseguire un INNER JOIN in una sottoquery e sembra che questo non sia supportato. C'è un modo per convertire quanto sopra in HQL (o un criterio) o dovrò usare una query SQL standard in questo caso? Grazie.
Come sarebbe? –
@CarlG Bene senza prove e utilizzando l'esempio dalla questione ... qualcosa sulla falsariga di: 'selezionare l da ItemLocationLog l dove l.dateTime = ( select max (g.dateTime) da ItemLocationLog g dove g.idItem = l.idItem ) ' – Arkaine55