从所有表中删除用户的所有信息


Delete everything about an user from all tables

可能重复:
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;');

依此类推:)