2016-11-08 9 views
0

一度表示されたすべてのレコードを選択します。IDは、私は、フォームのテーブルを持っているSQL

User1 A 
User2 A 
User2 B 
User3 C 
User4 A 
User4 C 
User5 D 

及びこのうち、私は一度表示されユーザーのみを選択する必要があります。例えば、上記の例では、User1、User3、User5が必要です。私はrow_number()のようなものを使用して重複を削除することができますが、これはすべてのユーザーに対して1つの行を返します。 User2 AUser2 Bのように、DISTINCTを使用することはできません。同じではないため、キャッチされません。

+0

なぜ私はわからないんだけど'row_number()'に言及してください。 MySQLはその機能をサポートしていません。 –

答えて

1

使用GROUP BY

select username 
from t 
group by username 
having count(*) = 1; 

あなたは2列目の重複しないわかっている場合は、右のインデックスと次は速いかもしれません:

select t.* 
from t 
where not exists (select 1 from t t2 where t2.username = t.username and t2.col2 <> t.col2); 
関連する問題