Operand should contain 1 column(s)问题出在何处

https://www.bilibili.com/video/BV1q4411G7Lw?p=20,做练习时遇到一个问题:

– 16、检索‘01’课程分数小于60分,按分数降序排列的学生信息

SQL语句:
SELECT a.s_id FROM student AS a
WHERE a.s_id IN
(SELECT s_id,s_score FROM score
WHERE c_id=‘01’
GROUP BY s_id HAVING s_score<60
ORDER BY s_score DESC
)

报错信息:
Operand should contain 1 column(s)

错误原因&解决办法:
这里IN后面我写了两个字段,IN后面只能有一个字段

容易忽视的另一点:保险起见,group by和having子句中出现的字段必须要首先出现在select子句中,否则会报错,提示你子句中的某个字段未知。order by排序,默认是升序。

你可能感兴趣的:(sql,数据库,mysql,sql,oracle,sqlserver)