为什么select min(id) 外面还要套一个select id in ?

图片说明

为什么select min(id) 外面还要套一个select id in ?在select min id 中不是已经把符合要求的id都选出来了吗

因为你不能直接从person表中查询数据,然后在删除出person表中的数据,如果不要select id in将会报You can't specify target table 'xx' for update in FROM claus的错e,所以需要将select min(id) 的结果集作为临时表再查询一次。

因为如果没有那句,那你查询出的字段名是'min(id')而不是 'id',你的 where 语句就会报错,说你的表里没有 id 这个字段