如何在mysql中使用内部连接删除行

如何在mysql中使用内部连接删除行,mysql,Mysql,基本上,我已经使用内部连接插入了数据,并且数据存储在多个表中的同一个产品上 现在我正试图编写一个查询,用于删除所有表中插入的行您必须指定要从中删除的表 DELETE * FROM ((disease INNER JOIN dishead ON disease.heading = dishead.hid) INNER JOIN disdes ON disease.description = disdes.did) where disease.id = 9; 还请注意,如果这些是外键,则可以使用D

基本上,我已经使用内部连接插入了数据,并且数据存储在多个表中的同一个产品上
现在我正试图编写一个查询,用于删除所有表中插入的行

您必须指定要从中删除的表

DELETE *
FROM ((disease
INNER JOIN dishead ON disease.heading = dishead.hid)
INNER JOIN disdes ON disease.description = disdes.did)
where disease.id = 9;

还请注意,如果这些是外键,则可以使用DELETE CASCADE上的
配置它们。然后,您只需从父表中删除,引用它们的行将自动删除。

删除中没有星号,仅选择。使用内部联接进行删除时,您必须在
delete
之后指定要从中删除的表。delete操作的是记录,而不是列。因此,DELETE的
*
没有意义。此外,我假设您要从实际的一个或多个表中删除,因此必须指定这些表。@FunkFortyNiner这不是用于此操作的正确dup。没有
=,这个问题没有
连接
,这会改变语法。@Barmar它是其中之一。如果你觉得它应该重新开放,让我知道你可以这样做。或要找到另一个副本以添加到此。您在此处忽略了有关星号的事实。请尽可能精确,巴尔马。你知道的。
DELETE d, dh, dd
FROM disease AS d
JOIN dishead AS dh ON d.heading = dh.hid
JOIN disdes AS dd ON d.description = dd.did
WHERE d.id = 9