【问题解决】Subquery returns more than 1 row & sql语句中IN关键字的应用

之前在某删除语句中多层嵌套查询,查出多个值然后报错

delete from cert where keyset_id = (select keyset_id from keyset where sd_id = 'XX');

这里使用的字段赋值使用的=,只符合select语句只查出一条记录的情况。
很多情况下查出的记录都是多条,这时会上述语句会报Subquery returns more than 1 row

此时当语句中的=置换成in时,字段赋值就能指向select语句查询出的多条记录了,置换后的语句如下:

delete from cert where keyset_id in (select keyset_id from keyset where sd_id = 'XX');

你可能感兴趣的:(编程)