2
これについてHQL文を理解しようとしています。私は...グループ内のすべての製品注文の最新のステータスを取得しようとしているが、この作業を取得するための正しいHQLの構文を把握することができないようHQLの別の列でグループ化されたテーブルから最新の列を取得します
例テーブル:
id | created_at | group_id | purchase_id | status
---|------------|----------|-------------|------------
0 | 10 | 3 | 6 | DELIVERING
1 | 11 | 3 | 6 | DELIVERED
2 | 12 | 3 | 7 | DELIVERING
3 | 13 | 3 | 8 | DELIVERING
4 | 14 | 4 | 13 | DELIVERING
5 | 15 | 4 | 13 | DELIVERED
6 | 16 | 4 | 13 | LOST
7 | 17 | 5 | 17 | DELIVERING
id | created_at | group_id | purchase_id | status
---|------------|----------|-------------|------------
1 | 11 | 3 | 6 | DELIVERED
2 | 12 | 3 | 7 | DELIVERING
3 | 13 | 3 | 8 | DELIVERING
クエリはPostgreSQLで動作します:
= 3.この表になるはずである各purchase_id
、の(
created_at
による)最新の情報を取得します210
SELECT DISTINCT ON (o.purchase_id) *
FROM orders o
WHERE o.group_id = 3
ORDER BY o.purchase_id, o.created_at DESC
同等のHQLステートメントは何ですか?
申し訳ありませんが、私は、これは 'purchase_id'のグループごとに最新の取得方法を確認するために失敗していますか?私は最新のものが "最高"の 'created_at'値(または最高の' id')を持っているが、まだ 'purchase_id'でどのようにグループ化されているのか分かりません。 – justderb
私は答えを更新しました。 – krokodilko
ありがとう!私は最初のHQLステートメントを使用しましたが、 'WHERE ... IN()'句の後ろに 'AND o.group_id =?' – justderb