我有两张桌子
表1
ID | HOTEL ID | NAME
1 100 xyz
2 101 pqr
3 102 abc
表2
ID | BOOKING ID | DEPARTURE DATE | AMOUNT
1 1 2013-04-12 100
2 1 2013-04-14 120
3 1 2013-04-9 90
4 2 2013-04-14 100
5 2 2013-04-18 150
6 3 2013-04-12 100
我希望结果为
ID | BOOKING ID | DEPARTURE DATE | AMOUNT
2 1 2013-04-14 120
5 2 2013-04-18 150
6 3 2013-04-12 100
如何在hibernate查询语言中实现此目的。我最好使用hibernate .createQuery("")。list()
答案 0 :(得分:0)
select table12.ID,table12.BOOKING_ID,table12.DEPARTURE_DATE,table12.AMOUNT from table2 table12
where table2 table12 .BOOKING_ID IN (select distinct table22.BOOKING_ID
from table2 table22
order by table22.DEPARTURE_DATE desc );
检查这个,迟到了解。
答案 1 :(得分:0)
根据您要求的结果集,您不需要将其与酒店表格一起加入,因为您可以从预订表中自行检索必要的数据。
您可以尝试以下hql(您可能需要根据您的要求更改列名称)
String hql = "(SELECT b.id, b.booking_id, MAX(b.amount), b.booking_date FROM Booking b GROUP BY b.booking_id)"
session.createQuery(hql).list();