我试图一次从几个表中删除。我做了一些研究,并提出了
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 ... 附近使用...
我以前从未做过跨表删除操作,所以我现在还没有经验,并且一直坚持下去!
我究竟做错了什么?
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。