使用select inner join从同一个表中删除

hxzsmxv2  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(307)

我正在尝试从表a中删除id存在于select内部联接中的表,该联接包含类似于:

Delete from TableA where ID in 
(Select Distinct A.ID from TableA A
Inner Join TableC C
Inner Join TableJ J
Inner Join Table J J2
On J.VendorID=J2.VendordID
and J.Title=J2.Title
and A.C_ID=C.C_ID
and J.ID=A.J_ID
and J2.ID=C.J_ID)

select的工作方式和我想要的一样(令人惊讶),但我不断得到错误 1093 - You can't specify target table 'TableA' for update in FROM clause 我假设这意味着不能尝试从子查询中包含的表中删除。有没有什么办法让我重组这个?

kninwzqo

kninwzqo1#

您不需要使用子查询。

Delete A from TableA A
Inner Join TableC C
Inner Join TableJ J
Inner Join TableJ J2
On J.VendorID = J2.VendordID
and J.Title = J2.Title
and A.C_ID = C.C_ID
and J.ID = A.J_ID
and J2.ID = C.J_ID

相关问题