我有一个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行附近使用正确的语法``
答案 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';