DELETE FROM返回1064个SQL语法错误。

问题描述 投票:0回答:1

我想不通为什么我的请求不能成功。我想删除表热点中的热点和表笔记本中使用这些热点的笔记本.给定的用户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 sql
1个回答
1
投票

MySQL的 多表 DELETE 句法 希望您将实际应该被删除的行的表列在下面的 DELETE 关键字--它不会自动从 连接表。

如果你想从两个表中删除记录 hotspotslaptop,您需要将它们列在 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 语法,其中你不需要在 DELETEFROM 因为单表中的 FROM 子句隐含为您的删除目标。

© www.soinside.com 2019 - 2024. All rights reserved.