我有两个包含成员数据的表 - ' members' 和 ' member_data'。由于某种原因(我继承了这个),该member_data表的记录多于该members表。两个表都有一个member_id似乎与两个表之间的用户信息匹配的列。
member_data如果在 ' ' 表中找不到匹配项,我想从 ' ' 表member_id中删除记录members。有人可以指出我正确的方向吗?
我有两个包含成员数据的表 - ' members' 和 ' member_data'。由于某种原因(我继承了这个),该member_data表的记录多于该members表。两个表都有一个member_id似乎与两个表之间的用户信息匹配的列。
member_data如果在 ' ' 表中找不到匹配项,我想从 ' ' 表member_id中删除记录members。有人可以指出我正确的方向吗?
您可以尝试使用NOT IN语句:
DELETE FROM `member_data`
WHERE `member_data`.`member_id`
NOT IN (
SELECT `members`.`member_id`
FROM `members`
);
无论如何,您应该更正插入或不删除意外行的错误。
delete from member_data where member_id not in (select member_id from members);
此查询将从 member_data 表中删除成员表中不存在的所有记录。