2013-07-31 30 views
0

非常初学者的问题,但在阅读各种帮助资源后未能得出答案。两个结果集之间的差异MySQL

我有一个表group_affiliations这是表用户和组之间的连接表。相关栏目:Id,user_id,group_id。我正在做一个数据清理,其中用户被分配了一个group_id,这个地址曾经是一个城市的3个字符的缩写,但是后来拼出了全城(例如:CHA的group_id之前被分配了,现在是group_id为夏洛特)。大多数用户目前都有group_id与他们的user_id相关联,但有些用户仍然只有旧的group_id,并且从未分配过新的用户。

什么是发现的最有效的方式,其ID在此结果集:

select user_id from group_affiliations where group_id=OldId; 
在此结果集

,而不是:

select user_id from group_affiliations where group_id=NewId; 
+0

是'OldId'和'group_affiliations'上的'NewId'字段?如果是这样,如果一个'NewId'没有被赋值,它会是NULL吗?你可以在问题中添加一些示例数据吗? –

+0

对不起,应该已经更清楚了。 OldId和NewID不是字段。我只是用这些作为占位符。 – samadhi

回答

1
SELECT 'user_id' 
from 'group_affiliations' 
where 'group_id' = OldId 
and 'group_id' != NewId 
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'