MySQL veritabanı ile çalışıyorsanız, geliştireceğiniz projelerde minimum veritabanı bağlantısı kurmalısınız. Ki böylece hızlı çalışan bir yazılım ya da betik yazmış olasınız. Bunu yapmanın tek yolu ise, tek bir sorgu ile alabileceğiniz verileri, birden fazla sorgu ile almamak
Örnek bir count() hesabı alttaki gibi.
SELECT COUNT(ID) as toplam_marka FROM b_motor_marka
Böylece b_motor_marka tablosundaki veri adetini bulmuş oldum. Tabi bu gayet basit. Peki birden fazla tabloya bağlanıp, her birinden ayrı ayrı count() hesabı yapmak istersem?
İşte böyle bir durum için örnek bir kod size.
SELECT mm.ID, mm.ad as marka_ad, COUNT(DISTINCT mo.ID) as toplam_model, COUNT(DISTINCT um.ID) as toplam_uye FROM b_motor_marka as mm LEFT JOIN b_motor_model as mo ON mo.markaID=mm.ID LEFT JOIN b_uye_motor as um ON um.markaID=mm.ID GROUP BY mm.ID
Yukarıda,
COUNT(DISTINCT mo.ID) as toplam_model, COUNT(DISTINCT um.ID) as toplam_uye
Yerine,
COUNT(mo.ID) as toplam_model, COUNT(um.ID) as toplam_uye
yazmış olsaydım, toplam_model ve toplam_uye değerleri birbirine eşit olacaktı. Bunları birbirinden ayırt etmek için başların DISTINCT ekledim ve istediğim sonucu ayrı ayrı ve tek bir sorgu ile elde ettim
Bu yazı 6 Ağustos 2008, 18:47 tarihinde yazılmış olup bu zamana kadar 280 kez görüntülenmiştir
Bu yazı 3 adet yorum almıştır ve bunların tamamı görüntülenmektedir.
Hayır, aksine gerek var, dikkatli oku Onur ![]()
sadece DISTINCT’lere gerek olmadıgını yazmıssın ? ya da ben yorgunum ?
Yazını çok beğendim. Yeni yazılarının e-posta adresime gelmesini istiyorum :)