【问题标题】:MySQL Error: You have an error in your SQL syntax check the manual that corresponds to your MySQL server version for the right syntax to useMySQL 错误:您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用
【发布时间】:2017-06-08 14:26:14
【问题描述】:

我有一个这样的 SQL 查询:

SELECT E.snum 
FROM Enrolled E 
GROUP BY E.snum 
HAVING COUNT (*) >= ALL (SELECT COUNT(*) 
                         FROM enrolled E2 
                         GROUP BY E2.snum)

但它会产生错误:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 靠近') >= ALL (SELECT COUNT() FROM E2 GROUP BY E2.snum) LIMIT 0, 30' 在第 1 行

错误是什么意思?为什么它不允许我使用 ALL 运算符?

【问题讨论】:

  • 您能否也发布一些带有预期结果集的示例数据,以便我们更好地了解您实际想要实现的目标?
  • 我要查找注册最多班级的学生姓名。考虑以下关系:Student(snum: integer, sname: string, major: string, level: string, age: integer ) Class(name: string, meet at: string, room: string, fid: integer) Enrolled(snum: integer, cname: string) Faculty(fid: integer, fname: string, deptid: integer)

标签: mysql sql database rdbms


【解决方案1】:

试试这个

SELECT E.snum, COUNT(E.snum) 
FROM Enrolled E 
GROUP BY E.snum 
HAVING COUNT (E.snum) >= ALL (SELECT COUNT(*) 
                         FROM enrolled E2 
                         GROUP BY E2.snum)

【讨论】:

  • 您的建议有效。但是为什么 count(*) 不起作用?只为求知。我是一名学习者。
  • @HeliShah Mark 回答,如果有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 2017-06-01
  • 2022-01-14
  • 2011-08-07
  • 2021-07-18
相关资源
最近更新 更多