我有以下表格
report_pre { id, date}
report_sections {id,report,data}
我想用以下sql代码删除表格片段: -
DELETE
FROM
report_sections
WHERE
report=ANY(
SELECT
rs.report
FROM
report_sections rs
WHERE
NOT EXISTS (
SELECT
rp.id
FROM
report_pre rp
WHERE
rp.id=rs.report
)
)
但是我收到了消息:
#1093 - 您无法指定目标表' report_sections'用于FROM子句中的更新
我做错了什么? 我已经尝试过不同的方法了,但到目前为止找不到解决办法。 请帮忙。
答案 0 :(得分:1)
这可能会做你想要的:
DELETE rs
FROM report_sections rs LEFT JOIN
report_pre rp
on rp.id = rs.report
WHERE rp.id IS NULL;
这将删除report_sections
中没有report_pre
匹配记录的所有行。
我认为原始邮件的错误信息非常清楚。您可以使用附加的子查询层来解决它。但是,学习join
方法来解决这个问题很有趣。