more than one row returned by a subquery used as an expression

忘是亡心i 2023-02-25 03:37 97阅读 0赞

有问题的sql

  1. delete from user where class_id in(
  2. (select class_id from class where class_grade = '高三'),
  3. (select class_id from class where class_grade = '高二')
  4. );

问题所在:

  1. select class_id from class where class_grade = '高三';
  2. 查询出来的结果是多条,
  3. select class_id from class where class_grade = '高二';
  4. 查询出来的结果也是多条。

这种写法不正确。至于为什么不能这么写,以后有时间再做研究。

正确的sql
方式一:

  1. delete from user where class_id in(
  2. select class_id
  3. from class
  4. where class_grade in('高三','高二')
  5. );
  6. 方式二:
  7. delete from user where class_id in(
  8. select class_id from class where class_grade = '高三'
  9. );
  10. delete from user where class_id in(
  11. select class_id from class where class_grade = '高二'
  12. );

发表评论

表情:
评论列表 (有 0 条评论,97人围观)

还没有评论,来说两句吧...

相关阅读