我有两个包含成员数据的表 - ' 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 表中删除成员表中不存在的所有记录。