我有两个包含成员数据的表 - 'members
'和'member_data
'。出于某种原因(我继承了这个)member_data
表比members
表有更多的记录。两个表都有一个member_id
列,它似乎与两个表之间的用户信息相匹配。从另一个表中删除记录是因为缺少另一个表中的记录
如果在'members
'表中找不到匹配的member_id
,我想从'member_data
'表中删除记录。有人能指引我朝着正确的方向吗?
我有两个包含成员数据的表 - 'members
'和'member_data
'。出于某种原因(我继承了这个)member_data
表比members
表有更多的记录。两个表都有一个member_id
列,它似乎与两个表之间的用户信息相匹配。从另一个表中删除记录是因为缺少另一个表中的记录
如果在'members
'表中找不到匹配的member_id
,我想从'member_data
'表中删除记录。有人能指引我朝着正确的方向吗?
您可以尝试使用一个NOT IN
声明:
DELETE FROM `member_data`
WHERE `member_data`.`member_id`
NOT IN (
SELECT `members`.`member_id`
FROM `members`
);
无论如何,你应该纠正插入或删除不意外行的bug。
delete from member_data where member_id not in (select member_id from members);
该查询将删除member_data表中不存在于members表中的所有记录。
像冠军一样工作,谢谢!是的,没有删除的错误需要死亡。 :) – 86Stang
以这种方式管理数据库时,您可以使用'NOT IN'语句,但'IN'和'NOT IN'使用大量资源,因此您应该在应用程序中避免使用它们。很高兴,如果我能帮助:-) –