非常初学者的问题,但在阅读各种帮助资源后却未能提出答案。
我有一个表group_affiliations,它是表用户和组之间的连接表。相关列:Id
,user_id
,group_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}}
答案 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'