我最近开始使用表之间的关系,当我尝试连接 2 时,我发现有些 ID 的外键不存在。
对于这个问题,假设我有带有 id 和名称的餐馆表,以及带有 id rest_id 的菜单表,它是餐馆表的外键。
我想删除所有在restaurants 表中不存在的rest_id 菜单。
我用这个:
DELETE FROM `Menus` WHERE restid IN (SELECT DISTINCT `restid` from
`Menus` M left join `Eng_Restaurants` ER on M.`restid` = ER.`ID`
where ER.`ID` is null)
但我收到以下错误:#1093 - 您不能在 FROM 子句中指定目标表“菜单”进行更新。
请注意,子查询确实返回了餐厅表中不存在的 id:
(SELECT DISTINCT `restid` from
`Menus` M left join `Eng_Restaurants` ER on M.`restid` = ER.`ID`
where ER.`ID` is null)
有任何想法吗?