Mysql 如何根据一列中的重复项和另一列中的差异从表中删除行?
我有一些数据污染在一个表中,我有一个艰难的时间删除。。。我已经确定了污染的原因,这样就不会再发生了,但现在有一大堆记录需要删除,我很难弄清楚是怎么回事 问题的性质如下 我有一个包含userid和groupid的表。一个用户存在于多个组中是有效的,因此我无法用唯一的关联来解决这一问题 在我的例子中,假设第4组和第5组是互斥的(这意味着用户不能同时属于这两个组) 我需要在user_groups表上运行delete,我可以说(英语): 如果userID=X,组ID=4,如果还有一行userID=X,组ID=5,则删除此行 我不想删除groupID=4的所有行,只想删除那些适用于也有一行包含groupID=5的用户的行Mysql 如何根据一列中的重复项和另一列中的差异从表中删除行?,mysql,Mysql,我有一些数据污染在一个表中,我有一个艰难的时间删除。。。我已经确定了污染的原因,这样就不会再发生了,但现在有一大堆记录需要删除,我很难弄清楚是怎么回事 问题的性质如下 我有一个包含userid和groupid的表。一个用户存在于多个组中是有效的,因此我无法用唯一的关联来解决这一问题 在我的例子中,假设第4组和第5组是互斥的(这意味着用户不能同时属于这两个组) 我需要在user_groups表上运行delete,我可以说(英语): 如果userID=X,组ID=4,如果还有一行userID=X,组
非常感谢大家的帮助 这将删除组4中所有在组5中有重复项的用户
DELETE FROM user_groups AS G1
WHERE G1.groupID=4
AND G1.userID IN (SELECT G2.userID FROM user_groups
WHERE G2.userID=G1.userID AND G2.GroupID=5)