mysql - 如何在mysql中使用INNER JOIN从两个表中删除行?

标签 mysql sql database join inner-join

我想删除两个表中图表 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”附近)

最佳答案

来自MySQL Docs看起来你可以轻松做到这一点:

 DELETE t1, t2 
   FROM t1 INNER JOIN t2 INNER JOIN t3
  WHERE t1.id=t2.id AND t2.id=t3.id;

或者

DELETE 
  FROM t1, t2 
 USING t1 INNER JOIN t2 INNER JOIN t3
 WHERE t1.id=t2.id AND t2.id=t3.id;

看起来更新的、更好的 JOIN 标准是可以接受的,我不知道为什么你的查询会提示。您确定查询中没有任何奇怪的字符吗?

关于mysql - 如何在mysql中使用INNER JOIN从两个表中删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624262/

相关文章:

sql - named_scope 按最后评论日期排序帖子

MySQL:来自另一个表列的列的默认值

sql复杂的类似表达式@user

c# - 将数据库从 SQL Server 2005 更改为 SQL Server 2008

mysql - 将 HQL 与 MySQL 结合使用,如何在分组依据之前对结果集进行排序,以便选择正确的记录?

sql - 使用 NOT IN 性能低下

java - MariaDb10 (MySQL 5.6) - 从 MySQL 5.5 更新后出现随机高 I/O 和慢查询

mysql - 更好的做法是对所有行进行计数,还是将变量存储在表示行数的相关表中?

python - 在 AWS 中运行 Python 脚本的最佳位置在哪里?

mysql - 如何将 RedShift 上的表格卸载到单个 CSV 文件?