0

非常に初歩的な質問ですが、さまざまなヘルプ リソースを読んでも答えを見つけることができませんでした。

テーブルusersとgroupsの間の結合テーブルであるテーブルgroup_affiliationsがあります。関連する列: Id, user_id, group_id. 以前は都市の 3 文字の略語だった場所に基づいて group_id がユーザーに割り当てられたデータのクリーンアップを行っていますが、その後完全な都市を綴るようになりました (例: group_idCHA の a は以前に割り当てられ、現在はgroup_idCharlotteの a) )。現在、ほとんどのユーザーはgroup_iduser_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

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 に答える