从所有表中删除有关用户的所有内容

时间:2012-02-12 15:03:41

标签: php mysql join sql-delete

  

可能重复:
  MySQL delete row from multiple tables

我有5张桌子:

  • 成员
  • member_videos
  • member_photos
  • member_friends
  • member_pages

当我删除该成员时,我想从这些表中删除所有记录。所有表中都存在member_id。我这样做每个表有5个查询。我可以在一个查询中使用LEFT JOIN或类似的内容吗?

3 个答案:

答案 0 :(得分:6)

是的,你可以。

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

答案 1 :(得分:1)

http://dev.mysql.com/doc/refman/5.0/en/delete.html

检查此页面,有一个多表DELETE的部分。

答案 2 :(得分:-2)

我认为你不能。但是,我认为您可以将查询与;并将其作为一个查询提供给mysql_query()或您正在使用的任何内容。例如:

mysql_query('DELETE * FROM members WHERE user_id = 4; DELETE * FROM member_videos WHERE user_id = 4;');

依此类推:))