Php 多表删除查询不工作

Php 多表删除查询不工作,php,mysql,sql,Php,Mysql,Sql,我有一个3表数据库,正在尝试通过一个查询从所有这些表中删除 查询: DELETE FROM cranes JOIN craneparts ON cranes.id = craneparts.craneID JOIN parts ON parts.id = craneparts.partsID WHERE cranes.id = '$id'` 有人能帮忙解释一下为什么这个查询不起作用吗$id只是一个PHP整数,出于测试目的,$id=2 给定的错误是: #1064-您的SQL语法有错误;检查

我有一个3表数据库,正在尝试通过一个查询从所有这些表中删除

查询:

DELETE FROM cranes 
JOIN craneparts ON cranes.id = craneparts.craneID 
JOIN parts ON parts.id = craneparts.partsID 
WHERE cranes.id = '$id'`
有人能帮忙解释一下为什么这个查询不起作用吗$id只是一个PHP整数,出于测试目的,
$id=2

给定的错误是:

#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行“JOIN craneparts ON cranes.id=craneparts.craneID JOIN parts ON parts.id=crane”附近使用的正确语法


即使要从所有表中删除,查询也必须特定于要从中删除的表

DELETE cranes, craneparts, parts
FROM cranes JOIN craneparts ON cranes.id = craneparts.craneID 
JOIN parts ON parts.id = craneparts.partsID 
WHERE cranes.id = '$id'

有关更多文档,请参阅。

您需要在
删除后指定要从中删除的表:

DELETE cranes, craneparts, parts
    FROM cranes JOIN
         craneparts
         ON cranes.id = craneparts.craneID JOIN
         parts
         ON parts.id = craneparts.partsID
     WHERE cranes.id = '$id';

谢谢这解决了一个问题,但现在我遇到了一个错误
无法删除或更新父行:外键约束失败('smithsv1'。'craneparts',约束'fk_craneparts_cranes1'外键('craneID')在删除时引用'cranes'('ID'),在更新时不执行任何操作)
编辑:修复了错误代码阻塞,在多表删除中,无法控制表删除的顺序。您应该使用DELETE CASCADE上的
定义外键。