我有三张桌子:
AAA列:

id  |  text

带列的BBB(aaa_id是前一个表中的外键=>id-a a a):
id  |  text  | aaa_id

以及带有列的CCC(bbb_id是前一个表中的外键=>id-BBB):
id  |  text  | bbb_id

现在,当我从表a a a中删除一条记录时,我想从表BBB中删除所有aaa_id = AAA.id的记录,并从表CCC中删除所有与我想从BBB中删除的记录相关的记录(因此它们的bbb_id等于BBB.id的记录的aaa_id等于AAA.id)。
我试过使用内部连接,但没有成功。同时,我用PHP选择所有的记录并分别删除它们。
桌子是米萨姆的。

最佳答案

DELETE AAA, BBB, CCC
    FROM AAA
    LEFT JOIN BBB ON BBB.aaa_id = AAA.id
    LEFT JOIN CCC ON CCC.bbb_id = BBB.id

如果每个表中总是有子记录,那么也可以使用内部联接。或者可以在外键约束中设置DELETE CASCADE。

关于mysql - 用JOIN删除所有记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7132822/

10-11 21:02