【发布时间】:2021-01-27 23:08:27
【问题描述】:
我有(工作的)SQL 查询
select team
from team
join account a on team.account_id = a.id
left join exchange_order eo on a.id = eo.account_id
left join exchange_order_transaction eot on eo.id = eot.order_id
having count(eot.id) = 0;
想把它翻译成jpql
@Query("SELECT COUNT(t) " +
"FROM Team t " +
" left join Account a on t.account = a.id " +
" left join ExchangeOrder eo on a.id = eo.account " +
" left join ExchangeOrderTransaction eot on eo.id = eot.order " +
"HAVING count(eot) = 0")
long countWithoutTransactions();
问题在于,JPQL 似乎不允许在没有“分组依据”的情况下使用 HAVING。但在那种情况下 我不想分组任何东西。只想计算所有行。
有什么方法可以解释“分组依据”或我应该如何构造该查询?
【问题讨论】:
-
请解释
having count(eot.id) = 0背后的逻辑……这应该是什么断言? -
团队通过 exchange_order 和 exchange_order_transaction 的账户连接。我想让所有团队在 exchange_order_transaction 表中没有任何行。
标签: postgresql jpql