可能重复:
MySQL从多个表中删除行
我有5张桌子:
- 成员
- 成员视频
- 成员照片
- 成员朋友
- 成员页面
当我删除该成员时,我想从这些表中删除他的所有记录。member_id
存在于所有表中。我对每个表进行5个查询。我可以在一个查询中使用LEFT JOIN
或类似的方法吗?
可以。
DELETE m, mv, mp, mf, mpp
FROM members AS m
LEFT JOIN member_videos AS mv ON mv.member_id = m.id
LEFT JOIN member_photos AS mp ON mp.member_id = m.id
LEFT JOIN member_friends AS mf ON mf.member_id = m.id
LEFT JOIN member_pages AS mpp ON mpp.member_id = m.id
WHERE m.id = 12
http://dev.mysql.com/doc/refman/5.0/en/delete.html
检查此页面,有一个部分用于删除多个表。
我认为你做不到。但是,我认为您可以将查询与分隔开;并将其作为一个查询提供给mysql_query()或您正在使用的任何查询。例如:
mysql_query('DELETE * FROM members WHERE user_id = 4; DELETE * FROM member_videos WHERE user_id = 4;');
依此类推:)