【问题标题】:Hibernate HqlL: Count and Group By including zero?Hibernate HqlL:计数和分组方式包括零?
【发布时间】:2017-02-28 11:41:48
【问题描述】:

我有 2 个表:Claim 和 Type_Claim。 Claim 在 Type_Claim 上有一个外部键。在 Hibernate 中,表示 Claim 表的 Bean 具有 TypeClaim 作为属性。

  Claim

 ID    TYPE
 1      2
 2      2
 3      4
 4      1

  Type_Claim

 ID    Description
 1     "Hello"
 2     "Hi"
 3     "House"
 4     "Welcome"
 5     "Bye"

现在我做了这个查询:

SELECT tc.description, COUNT(*) 
FROM Claim claim"
LEFT OUTER JOIN claim.typeClaim tc  
GROUP BY tc.description ";

我想得到这个:

Description  Count
  "Hello"     1
  "Hi"        2
  "House"     0
  "Welcome"   1
  "Bye"       0

但我得到了这个:

Description  Count
  "Hello"     1
  "Hi"        2
  "Welcome"   1

如何在查询中包含 0 结果?我尝试使用 RIGHT JOIN,但得到了相同的结果。

【问题讨论】:

标签: java mysql sql hibernate hql


【解决方案1】:

试试这个:

SELECT tc.description, count(cl.type)
FROM type_claim tc
LEFT OUTER JOIN claim cl ON
cl.type = tc.id
GROUP BY tc.description

它对我有用:

【讨论】:

  • 是的,昨天我找到了解决方案,我做了一个相同的查询,但是谢谢^^
【解决方案2】:

聚合函数 count() 不会计算 NULL 值,因此您将得到零。

您必须使用 LEFT JOIN 而不是 LEFT OUTER JOIN

如果你想了解更多关于外连接的知识,这里有一个很好的教程:http://sqlzoo.net/wiki/Using_Null

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多