MySQL两个结果集之间的差异

时间:2013-07-31 13:54:19

标签: mysql

非常初学者的问题,但在阅读各种帮助资源后却未能提出答案。

我有一个表group_affiliations,它是表用户和组之间的连接表。相关列:Iduser_idgroup_id。我正在进行数据清理,其中用户被分配了一个group_id,该地点曾经是一个城市的3个字符的缩写,但后来拼写出完整的城市(例如:group_id用于CHA之前被分配现在是夏洛特的group_id。目前,大多数用户都将group_id与其user_id相关联,但有些用户仍然只拥有旧group_id,并且从未分配过新的select user_id from group_affiliations where group_id=OldId;

查找此结果集中哪些ID的最有效方法是什么:

select user_id from group_affiliations where group_id=NewId;

而不在此结果集中:

{{1}}

2 个答案:

答案 0 :(得分:1)

SELECT 'user_id' 
from 'group_affiliations' 
where 'group_id' = OldId 
and 'group_id' != NewId

答案 1 :(得分:0)

如何使用JOIN

SELECT g1.'user_id' 
from 'group_affiliations' g1
inner join 'group_affiliations' g2 
on g2.'group_id' != NewId
and g2.'group_id' = OldId
and g1.'user_id'=g2.'user_id'