我有三张桌子:
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/