JPQL JOIN 查询对应值的行数(多列)
Posted
技术标签:
【中文标题】JPQL JOIN 查询对应值的行数(多列)【英文标题】:JPQL JOIN query number of rows with corresponding value (for multiple columns) 【发布时间】:2016-01-14 00:17:32 【问题描述】:考虑这两个表
平均游戏桌
firstGame secondGame thirdGame
10 20 30
人员表
Person first second third
Bob 10 10 30
Bob 20 10 30
Bob 10 20 30
我正在尝试返回 bob 得分与 AverageGame 表中的平均值相同的次数(例如,他第一次获得 10 次,第二次获得 20 次,第三次获得 30 次的次数) 结果应该是
[2,1,3]
任何人都可以告诉我如何做到这一点,因为我目前只能在一个专栏中做到这一点,非常感谢任何帮助,谢谢
【问题讨论】:
您需要sql
解决方案吗?
嗨,vkp 最好寻找 jpql,但 sql 可以提供帮助,因为我可以尝试实现它,而不是感谢格式化我的问题,你能告诉我你是怎么做到的吗?
【参考方案1】:
这有点奇怪。这是我的方法:
http://sqlfiddle.com/#!9/1a3720/2
SELECT person,
SUM(IF(`first` = firstGame,1,0)) firstCount,
SUM(IF(`second` = secondGame,1,0)) secondCount,
SUM(IF(`third` = thirdGame,1,0)) thirdCount
FROM Person
LEFT JOIN AverageGame
ON 1
GROUP BY person
但我的问题是,当 AverageGame
表的记录多于 1 条时,您期望会发生什么?
【讨论】:
我知道这看起来有点奇怪,但这只是解决问题的方法。感谢您的帮助,我今晚会试一试。至于你的问题,averageGame 表有另一列作为主键,表示游戏的位置,但每个位置的值永远不会改变以上是关于JPQL JOIN 查询对应值的行数(多列)的主要内容,如果未能解决你的问题,请参考以下文章