我想显示每一行的学生名单、姓名和比当前学生年龄大的学生人数。但我得到了这个错误
SELECT sd1.Roll, sd1.Name, COUNT(
SELECT Roll
FROM student_details sd2
WHERE sd2.Age > sd1.Age
)
FROM student_details sd1 LIMIT 0, 25
MySQL said: Documentation
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version
for the right syntax to use near
'SELECT Roll
FROM student_details sd2
WHERE sd2.Age > sd1.Age
' at line 2
在我的询问中。
SELECT sd1.Roll, sd1.Name, COUNT(
SELECT Roll
FROM student_details sd2
WHERE sd2.Age > sd1.Age
)
FROM student_details sd1;
我的数据库表“student\u details”类似于
2条答案
按热度按时间pobjuy321#
不能在内部使用查询
count
像那样工作。但可以使用相关子查询;bhmjp9jg2#
不能在内部使用相关的select子查询
count
这样的聚合函数。似乎你想做的是为每个学生获得一个计数有多少学生是从每个学生年龄较大。使用
LEFT JOIN
如果没有大一点的学生count(sd2.Roll)
只数年轻人(从sd2
).