我想删除两个表中chart_id为1的所有行,但它不会工作,我也没有任何线索的原因。
DELETE `cms_module_charts`
FROM `cms_module_charts`
INNER JOIN `cms_module_charts_kategorie`
ON `cms_module_charts_kategorie`.`chart_id`=`cms_module_charts`.`chart_id`
WHERE `chart_id`= 1
这是错误:
意想不到的性格。 (位于第7位的“cms_module_charts
”附近)
答案 0 :(得分:0)
标准SQL语法为.lock()
,DELETE FROM
和DELETE
试试这个:
FROM
答案 1 :(得分:0)
我认为在您的数据库方案中您应该使用ON DELETE CASCADE
,然后当您删除行时,它会删除它的引用,但是当您使用join删除它时它没有意义。
答案 2 :(得分:0)
从MySQL Docs来看,您可以轻松完成此任务:
DELETE t1, t2
FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
OR
DELETE
FROM t1, t2
USING t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
我看起来更新,更可取,JOIN
标准是可以接受的,我不知道你的查询为什么抱怨。你确定你的查询中没有任何奇怪的字符吗?