【发布时间】:2019-04-13 01:01:18
【问题描述】:
我有一个分数表,其中有球员的分数,我想为每个分数最高的球员选择唯一的记录。
这是表格:
id | player_id | score | ...
1 | 1 | 10 | ...
2 | 2 | 21 | ...
3 | 3 | 9 | ...
4 | 1 | 30 | ...
5 | 3 | 2 | ...
预期结果:
id | player_id | score | ...
2 | 2 | 21 | ...
3 | 3 | 9 | ...
4 | 1 | 30 | ...
我可以用这样的纯 SQL 来实现:
SELECT *
FROM player_score ps
WHERE ps.score =
(
SELECT max(ps2.score)
FROM player_score ps2
WHERE ps2.player_id = ps.player_id
)
您能告诉我如何使用查询 dsl 实现相同的查询吗?我找到了一些使用 JPASubQuery 的解决方案,但是这个类对我不起作用(我的 IDE 无法解析这个类)。我正在使用 querydsl 4.x。提前谢谢你。
【问题讨论】:
标签: sql jpa spring-data-jpa querydsl