more than one row returned by a subquery used as an expression
有问题的sql
delete from user where class_id in(
(select class_id from class where class_grade = '高三'),
(select class_id from class where class_grade = '高二')
);
问题所在:
select class_id from class where class_grade = '高三';
查询出来的结果是多条,
select class_id from class where class_grade = '高二';
查询出来的结果也是多条。
这种写法不正确。至于为什么不能这么写,以后有时间再做研究。
正确的sql
方式一:
delete from user where class_id in(
select class_id
from class
where class_grade in('高三','高二')
);
方式二:
delete from user where class_id in(
select class_id from class where class_grade = '高三'
);
delete from user where class_id in(
select class_id from class where class_grade = '高二'
);
还没有评论,来说两句吧...