我想不通为什么我的请求不能成功。我想删除表热点中的热点和表笔记本中使用这些热点的笔记本.给定的用户ID=2EA81这里是 。
DELETE FROM hotspot, laptop WHERE hotspot.user_id= '2EA81' and laptop.id= hotspot.hotspot_ID
错误代码。1064. 你的SQL语法有错误;请检查你的MySQL服务器版本对应的手册,以了解在第1行'WHERE hotspot.user_id= '2EA81' and laptop.id= '附近使用的正确语法。
有什么办法吗?
MySQL的 多表 DELETE
句法 希望您将实际应该被删除的行的表列在下面的 DELETE
关键字--它不会自动从 都 连接表。
如果你想从两个表中删除记录 hotspots
和 laptop
,您需要将它们列在 DELETE
. 我还建议将你的连接表达式改为显式的 INNER JOIN
中所述。table_references
节 的链接文档。MySQL应该支持隐式(逗号分隔的 FROM
正如您所尝试的那样)--我还没有测试过,但显式的 INNER JOIN
作为一种现代语法,无论如何都是首选。
DELETE
-- list tables to actually delete rows from
hotspot,
laptop
FROM
-- Supply an explicit INNER JOIN
hotspot
INNER JOIN laptop ON laptop.id= hotspot.hotspot_ID
WHERE
-- Filter rows on conditions
hotspot.user_id= '2EA81'
列出要删除的表与单表的不同。DELETE
语法,其中你不需要在 DELETE
和 FROM
因为单表中的 FROM
子句隐含为您的删除目标。