mysql - JQL 中的翻译内连接

标签 mysql jpa jql

我的 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/

相关文章:

java - 批量插入现有数据 : Preventing JPA to do a select before every insert

jira - 如何用(Jira 查询语言)编写查询以按周数限制问题?

jira - 是否可以在 JIRA 中搜索其父项在不同查询中找到的子任务列表?

javascript - 添加两个 MySql 变量在一起,一个日期和一个数字与 php

php - 如何使用准备好的PDO语句设置ORDER BY参数?

mysql - 为什么这个触发器没有执行?

mysql - ENUM 数据类型的索引

java - 将 jpa (Hibernate) 中的 native (连接)查询转换为 json

java - 具有多个集合的 JPA 实体结果集重复

JIRA JQL : How to search on issues closed before a time in the day?