开发者社区> 问答> 正文

如何从MySQL中的多个表中删除?

我试图一次从几个表中删除。我做了一些研究,并提出了

DELETE FROM pets p, pets_activities pa WHERE p.order > :order AND p.pet_id = :pet_id AND pa.id = p.pet_id 但是,我收到此错误

未捕获的Database_Exception [1064]:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'p,pets_activitiespa ... 附近使用...

我以前从未做过跨表删除操作,所以我现在还没有经验,并且一直坚持下去!

我究竟做错了什么?

展开
收起
保持可爱mmm 2020-05-10 19:35:27 411 0
1 条回答
写回答
取消 提交回答
  • JOIN在DELETE语句中使用a 。

    DELETE p, pa FROM pets p JOIN pets_activities pa ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id 另外,您可以使用...

    DELETE pa FROM pets_activities pa JOIN pets p ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id ...仅从中删除 pets_activities

    看到这个。

    对于单表中删除,但具有参照完整性,也有与做的其他方式EXISTS,NOT EXISTS,IN,NOT IN等,但上面你来自哪里,用别名来删除该表指定前一个FROM条款可以让你出几个漂亮的紧斑点更容易。我倾向于EXISTS在99%的情况下使用,然后有1%的MySQL语法需要一天的时间。来源:stack overflow

    2020-05-10 19:35:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像