HQL: Ist es möglich, einen INNER JOIN für eine Unterabfrage auszuführen?
Das obige Diagramm ist eine vereinfachte Version der Datenbankstruktur, mit der ich Positionen im Zeitverlauf protokollieren kann. Ich schrieb die folgende SQL-Abfrage, die den aktuellen Element Bestand an jedem Standort gibt:
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
Das Problem, das ich habe ist, dass ich das HQL konvertieren will, aber ich habe nicht die Syntax auszuführen eine gefunden INNER JOIN für eine Unterabfrage, und es scheint, als ob dies nicht unterstützt wird. Gibt es eine Möglichkeit, das obige in HQL (oder ein Kriterium) zu konvertieren, oder muss ich in diesem Fall eine Standard-SQL-Abfrage verwenden? Vielen Dank.
Wie würde das aussehen? –
@CarlG Nun ohne Prüfung und das Beispiel von der Frage, mit ... etwas entlang der Linien von: 'l wählen aus ItemLocationLog l wo l.dateTime = ( select max (g.dateTime) von ItemLocationLog g wo g.idItem = l.idItem ) ' – Arkaine55