SQL 子查询错误:IN 操作符只能接受单个列
这段代码报错的原因可能是子查询返回的结果集中有多个列,而外层的 IN 操作符只能接受单个列作为参数。
从代码中可以看到子查询中的 SELECT 语句返回了两个列,即'd.dept_no' 和 'd.emp_no'。而外层的 IN 操作符只能接受单个列作为参数,因此会报错。
如果你只需要使用 'd.dept_no' 作为条件进行查询,可以将子查询的 SELECT 语句中的 'd.emp_no' 移除,只保留 'd.dept_no' 即可。修改后的代码如下:
WHERE d.`dept_no` IN (
SELECT d.`dept_no`
FROM dept_emp d
JOIN salaries s ON d.`emp_no` = s.`emp_no`
GROUP BY d.`dept_no`
ORDER BY s.`salary` ASC
LIMIT 0,1
)
这样修改后,子查询只返回了 'd.dept_no' 一列,不再报错。
原文地址: https://www.cveoy.top/t/topic/pbKJ 著作权归作者所有。请勿转载和采集!