2009-03-10 27 views
2

Birden çok alana sahip bir MySQL tablom var ve bir kopyasını çoğaltan girişler bulmak istiyorum.MySQL - yinelenen bölümleri bulma

Başlangıçta bu

select f1, f2, f3 from mytable t1 left join mytable t2 
where t1.f1 = t2.f1 and t1.f2 = t2.f2 and t1.f3 = t2.f3; 

yapabileceğini düşünüyordum Ama sonra bu sadece will masanın (Sanırım) tüm satırlar dönmek fark etti.

Tuple üzerinde bir dizin oluşturdum. Masamda 1,2 milyon satır var, eğer bir fark yaratırsa.

SQL'im çok güçlü değil. Yardım aldım. Böyle

cevap

3

Belki bir şey: sözdizimi kapalı olabilir böylece

select f1, f2, f3, count(*) 
from mytable 
group by f1, f2, f3 
having count(*) > 1 

MS SQL kullanın.