我有一张这样的表:
| ID | SOMEKEY | STATUS |
-------------------------
| 1 | A | 0 |
| 2 | A | 1 |
| 3 | B | 1 |
| 4 | B | 1 |
现在我想使用JPA获取仅状态1的密钥。
select o.somekey
from only_test o
where o.status = 1
and (select count(distinct s.status) from only_test s where s.somekey = o.somekey) = 1
group by o.somekey
也适用于JPA,只给出了我想要的B,但对我来说看起来很笨拙。
不存在像
这样的东西having only status = 1
SQL中的也适用于JPA(JPQL)?
答案 0 :(得分:2)
使用GROUP BY
和HAVING
:
select o.somekey
from only_test o
group by o.somekey
having max(o.status) = min(o.status) and min(o.status) = 1;
所以,我猜你的问题的答案是"是的",它确实有类似WHERE ONLY
的内容,但它的措辞不同。