我无法弄清楚为什么我的请求不起作用。我想删除表格热点中的热点以及在笔记本电脑中使用这些热点的笔记本电脑。给定用户ID = 2EA81 这是:
{
"route": [
{
"zIndex": "0",
"match": "true",
"column": "6",
"fare": "50.0",
"source": "false",
"length": "1",
"name": "29",
"row": "0",
"width": "1"
},
{
"zIndex": "0",
"match": "true",
"column": "9",
"fare": "110.0",
"source": "false",
"length": "1",
"name": "37",
"row": "3",
"width": "1"
},
{
"zIndex": "0",
"match": "true",
"column": "10",
"fare": "120.0",
"source": "false",
"length": "1",
"name": "41",
"row": "4",
"width": "1"
},
{
"zIndex": "0",
"match": "true",
"column": "8",
"fare": "500.0",
"source": "false",
"length": "1",
"name": "33",
"row": "2",
"width": "1"
},
{
"zIndex": "0",
"match": "true",
"column": "7",
"fare": "510.0",
"source": "false",
"length": "1",
"name": "29",
"row": "1",
"width": "1"
}
]
}
错误代码:1064。您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在'WHERE hotspot.user_id ='2EA81'和laptop.id ='第1行附近使用正确的语法
有什么想法吗?
答案 0 :(得分:1)
MySQL的multi-table DELETE
syntax期望您列出实际应删除行的表,以便在DELETE
关键字之后列出 - 它不会自动从所有连接表中删除。
如果您要删除hotspots
和laptop
中的行,则需要在DELETE
之后列出这些行。我还建议将连接表达式更改为显式INNER JOIN
,如链接文档的table_references
section中所述。 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
之间命名任何表,因为{{1}中的单个表}子句隐含为删除目标。