如果条件在“中”;mysql ON“;

如果条件在“中”;mysql ON“;,mysql,join,Mysql,Join,在我的网站上,我想删除一系列删除。也就是说,如果删除了主类别,则所有关联的子类别和子类别都将被删除。为此,我写了下面的查询 UPDATE tabel1 AS t1 JOIN tabel2 AS t2 ON t2.foreignkey = t1.primarykey JOIN tabel3 AS t3 ON t3.foreignkey = t2.primarykey JOIN tabel4 AS t4 ON t4.foreignkey = t3.primarykey SET t1.status =

在我的网站上,我想删除一系列删除。也就是说,如果删除了主类别,则所有关联的子类别和子类别都将被删除。为此,我写了下面的查询

UPDATE tabel1 AS t1
JOIN tabel2 AS t2 ON t2.foreignkey = t1.primarykey
JOIN tabel3 AS t3 ON t3.foreignkey = t2.primarykey
JOIN tabel4 AS t4 ON t4.foreignkey = t3.primarykey
SET t1.status = 'deleted',
 t2.status = 'deleted',
 t3.status = 'deleted',
 t4.status = 'deleted'
WHERE
 t1.primarykey = '1'

如果每个表中都有对应的外键,则此查询工作正常。假设最后一个表用于存储图像。对于表3数据,不强制要求添加图像。因此,如果使用上述查询,则在找到没有对应table4图像数据的table3数据时失败。但我也需要删除表3中的数据。有什么办法可以实现吗?

你读了
[delete]
标签的摘录了吗?它清楚地表明“此标签已弃用!请使用更具体的标签代替。”请以后更仔细地阅读标签。谢谢。在
ON
子句中,您总是需要某种明确的
JOIN
条件,否则您无法确定哪一行对应于其他表。我添加了
left JOIN
而不是
JOIN
,问题已得到解决:)