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

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

我正试图一次从几张桌子上删除。我做了一些研究,想出了这个

DELETE FROM `pets` p,
            `pets_activities` pa      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id        AND pa.`id` = p.`pet_id`

但是,我得到了这个错误。

Unaught Database_Exception[1064]:SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得使用“p”的正确语法。pets_activities爸.。

我从来没有做过交叉表删除,所以我没有经验和暂时卡住!

我做错什么了?


holdtom
浏览 1004回答 3
3回答

慕村225694

因为这似乎是一种简单的父子关系pets和pets_activities,最好使用删除级联创建外键约束。那样的话,当pets行被删除,则pets_activities与其关联的行也会自动删除。然后,您的查询变得很简单:delete from `pets`     where `order` > :order       and `pet_id` = :pet_id

杨魅力

用这个DELETE FROM `articles`, `comments` USING `articles`,`comments` WHERE `comments`.`article_id` = `articles`.`id` AND `articles`.`id` = 4或DELETE `articles`, `comments` FROM `articles`, `comments` WHERE `comments`.`article_id` = `articles`.`id` AND `articles`.`id` = 4
打开App,查看更多内容
随时随地看视频慕课网APP