2010-11-19 12 views
2

girişleri [n = 1] örnekteMySQL sorgu yinelenen daha fazla sahip bulmak için (n) kayıtları (n) adetten fazla olan bulmak için bu SQL sorgusu kadar oluşturma ile sorun olan am

I tablo

sahip
|--id-|--user_id--| 
| 1 | 1  | 
| 2 | 1  | 
| 3 | 1  | 
| 4 | 2  | 
| 5 | 2  | 
| 6 | 3  | 

olsa okumak için, herhangi bir yardım çok takdir

|--id-|--user_id--| 
| 2 | 1  | 
| 3 | 1  | 
| 5 | 2  | 

benim tablosundaki sayesinde çiftleri almak istiyorum

GÜNCELLEME:

Ben MySQL v5.1

+0

Yani 1 veya 4 numaralı kimliği almak istemiyorsunuz? – Brad

+0

evet, id = 1,4,6 – Ish

cevap

3

Bu benim yaklaşım olur

SELECT ID, USER_ID 
    FROM TABLE 
GROUP USER_ID 
HAVING COUNT(1) > 1 
MINUS 
SELECT MIN(ID) ID, USER_ID 
    FROM TABLE 
GROUP BY USER_ID 
+0

teşekkürler @Mauro, eksi için +1 – Ish

2

EDIT kullanıyorum: oops, MySQL kullandığınızdan emin görmedim. Eğer hangi senin kullanarak ama burada Sqlserver cevabı SQL sürümü

emin MySQL

çalışan almak için bu sorguyu ince ayar mümkün olabilir:

SELECT * from [table_name] GROUP BY user_id HAVING COUNT(*) > n 
+0

gibi benzersiz user_id'e sahip olan tüm kayıtları almak istemiyorum, Ramy'yi doğrulayın, – Ish

+0

MySQL için doğrulayın ve tam ihtiyacım olanı doğrulayın. – superphonic

İlgili konular