DELETE FROM table b
LEFT JOIN table a ON a.id = b.a_id WHERE a.id = ?
mysql进行delete的相关操作的时候,关联表格使用left join可能会产生非预期的结果,导致运行报错,这时应当使用INNER JOIN
因为LEFT JOIN
会返回左表(这里是b表)的所有记录,即使右表(这里是a表)没有匹配的记录。而INNER JOIN
只返回两个表中有匹配关系的记录
代码如下
DELETE b FROM table b
INNER JOIN table a ON a.id = b.a_id WHERE a.id = ?
运行即可