arkadaşlar aşağıdaki gibi bir tablo var elimde
id adi soyadi
--- -------- --------------
1 osman muro
2 dursun petek
3 ahmet kalamış
4 osman muro
5 haydar kelepir
6 osman orman
bu tablodaki "osman muro" gibi aynı olan kayıtların 1 tanesi kalsın diğerleri silinsin istiyorum. bunu SQL ile nasıl yapabilirim ?
(sorgu sonundaki listem distinct kullanılarak sorgulanmış gibi olması gerekiyor).
aynı kayıtların fazlalıklarını silmek
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: aynı kayıtların fazlalıklarını silmek
Bu gibi durumda bir benzersiz alan olmalı. Problem bu alan üzerinden çözülebilmektedir.gibi bir sorgu ile AdSoyad alanına göre gruplanan sorgundan minimum id değerleri haricindeki kayıtlar silinerek fazlalıklar atılır.
Kod: Tümünü seç
delete from tablo where not id in (select min(id) from tablo group by AdSoyad)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: aynı kayıtların fazlalıklarını silmek
fakat adi ve soyadi ayrı field'lar!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: aynı kayıtların fazlalıklarını silmek
O zaman kodunu bir dene. Uygulamalı denemedim ama çalışacağını umuyorum.
Kod: Tümünü seç
delete from tablo where not id in (select min(id) from tablo group by Ad, Soyad)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .