gpt4 book ai didi

mysql - JQL 中的翻译内连接

转载 作者:行者123 更新时间:2023-11-29 19:29:35 26 4
gpt4 key购买 nike

我的 JQL 中的 INNER JOIN 存在问题。我想要做的是检索所有对一个用户 Z 进行评分且平均值 >= 2 的用户。用户必须回答 3 个问题,这将决定该用户 Z 的最终评分。有 2 个表,用户和分数。

Table User    Table Score
Id_user Id_score Id_rated Id_rater Id_question Score
1 1 1 3 1 1
2 2 1 3 2 0
3 3 1 3 3 1
4 1 2 1 0
5 1 2 2 0
6 1 2 3 0

例如,我只想要用户 2。这是我将查询转换为 JQL 时出现的错误:

[32, 184] The join association path is not a valid expression.

我的查询在 MySQL Workbench 中运行良好

SELECT *
FROM User
INNER JOIN (
SELECT ID_RATER, (AVG(Score.score)*5) as AvgScore
FROM Score
WHERE ID_RATED=1751
AND (
SELECT (AVG(Score.score) * 3)
FROM Score)
GROUP BY ID_RATER
) TabAvg
ON TabAvg.AvgScore >= 2
AND USER.ID=TabAvg.ID_RATER

转换为 JQL:

String sql = 
"SELECT U "
+ "FROM User U "
+ "INNER JOIN "
+ "("
+ "SELECT S.id_rater, (AVG(S.Score) * 3) AS AvgScore "
+ "FROM Score S "
+ "WHERE S.id_rated= :id_rated"
+ "AND "
+ "("
+ "SELECT (AVG(S2.score) * 3) "
+ "FROM Score S2"
+ ") "
+ "GROUP BY S.id_rater"
+ ") TabAvg "
+ "ON TabAvg.AvgScore >= 2 "
+ "AND U.id_user = TabAvg.id_rater";

最佳答案

好吧,我还是不知道问题出在哪里

EntityManager.createQuery(sql)

但为了绕过这个,我使用了

EntityManager.createNativeQuery(sql)

只需将我的工作 SQL 复制/粘贴到我的代码中即可。

关于mysql - JQL 中的翻译内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41891857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com