我想在MySQL中删除表中的行:
delete from image_shout
where auto_id in
(
select s.auto_id
from image_shout s
left join images i on s.image_id = i.image_id
where i.image_id is null
);
这样做,我得到一个错误:
错误码:1093。你不能指定目标表'image_shout'for update FROM子句
在Mysql中,你不能从你要删除的表中进行选择。但是您可以使用另一个子查询来欺骗它。
delete from image_shout
where auto_id in
(
select * from
(
select s.auto_id
from image_shout s
left join images i on s.image_id = i.image_id
where i.image_id is null
) tmp_tbl
)
或者直接在delete语句
中使用joindelete s
from image_shout s
left join images i on s.image_id = i.image_id
where i.image_id is null