0

非常初学者的问题,但在阅读了各种帮助资源后无法给出答案。

我有一个表 group_affiliations 它是表用户和组之间的连接表。相关栏目:Id, user_id, group_id. 我正在做一个数据清理,其中用户被分配了一个 group_id 基于一个位置,该位置曾经是一个城市的 3 个字符的缩写,但后来又拼出了完整的城市(例如:group_id以前分配了一个用于 CHA,现在一个group_id用于夏洛特)。大多数用户当前都有两个group_ids 与他们的 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;
4

2 回答 2

1
SELECT 'user_id' 
from 'group_affiliations' 
where 'group_id' = OldId 
and 'group_id' != NewId
于 2013-07-31T13:56:38.777 回答
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'
于 2013-07-31T14:04:13.900 回答