gpt4 book ai didi

mysql - JDBC 与 Mysql : using mulitple outer joins with where clauses

转载 作者:行者123 更新时间:2023-11-29 00:33:08 25 4
gpt4 key购买 nike

我遇到了以下查询的问题。它在 mysql workbench 中工作,但当我在带有 jdbc 的 java 中使用它时却不行。我不断收到语法错误。

这里是查询:

"SELECT f.ISBN, f.text, m.title, AVG(r.rating) as score" +
" FROM RATES r LEFT OUTER JOIN FEEDBACK f ON (f.fid = r.fid) WHERE f.ISBN = ? " +
"LEFT OUTER JOIN MOVIE m ON (m.ISBN = f.ISBN) " +
"GROUP BY ISBN " +
"ORDER BY score DESC LIMIT ? ";

我做了一些搜索并找到了 {oj } 的 jdbc 转义语法。但是我会得到另一个语法错误。

我最近遇到的错误是:

HTTP Status 500 - javax.servlet.ServletException:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT OUTER JOIN MOVIE m ON (m.ISBN = f.ISBN) GROUP BY ISBN ORDER BY score DESC L' at line 1

我希望对此有一些新的看法,因为我似乎看不到我的问题。

提前致谢!

最佳答案

我认为 WHERE 子句必须放在 JOINING 后面。下一个问题是 select 子句中的列数等于 group 子句中的列数(除了 avg、count 等函数)。所以你需要像这样更正你的查询:

SELECT f.ISBN, f.text, m.title, AVG(r.rating) as score
FROM RATES r
LEFT OUTER JOIN FEEDBACK f ON (f.fid = r.fid)
LEFT OUTER JOIN MOVIE m ON (m.ISBN = f.ISBN)
WHERE f.ISBN = ?
GROUP BY f.ISBN, f.text, m.title
ORDER BY score DESC LIMIT ?

关于mysql - JDBC 与 Mysql : using mulitple outer joins with where clauses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15605045/

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