基于另一个表中缺少存在而从一个表中删除记录

时间:2012-11-29 21:55:23

标签: mysql

我有两个包含成员数据的表 - “members”和“member_data”。出于某种原因(我继承了这一点),member_data表的记录多于members表。两个表都有一个member_id列,似乎与两个表之间的用户信息相匹配。

如果在“member_data”表格中找不到匹配的member_id,我想从“members”表中删除记录。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用NOT IN声明:

DELETE FROM `member_data`
WHERE `member_data`.`member_id`
NOT IN (
   SELECT `members`.`member_id`
   FROM `members`
);

无论如何,您应该更正插入或不删除意外行的错误。

答案 1 :(得分:0)

delete from member_data where member_id not in (select member_id from members);

此查询将删除member_data表中不存在于members表中的所有记录。