多表删除查询不起作用

时间:2014-06-29 22:50:39

标签: 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语法出错;查看与您的MySQL服务器版本对应的手册,以便在'JOIN craneparts ON cranes.id = craneparts.craneID JOIN部件ON parts.id = crane'在第1行附近使用正确的语法``

2 个答案:

答案 0 :(得分:2)

您的查询必须具体说明您要从中删除哪些表,即使您要从所有表中删除。

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

有关更多文档,请参阅http://dev.mysql.com/doc/refman/5.6/en/delete.html

答案 1 :(得分:0)

您需要在delete

之后指定要删除的表格
DELETE cranes, craneparts, parts
    FROM cranes JOIN
         craneparts
         ON cranes.id = craneparts.craneID JOIN
         parts
         ON parts.id = craneparts.partsID
     WHERE cranes.id = '$id';