Yazar:Abdullah Tekin Eklenme: 13.06.2008 Okunma: 726
Puan: 3.9 Seviyesi: İleri
Birbiriyle ilişkisi olan iki tablonuz var. Birisi markalar diğeri modeller varsayalım. Bir marka içinde kaç model olduğunu tek SQL sorgusu yaparak hesaplamak istiyorsunuz. Tablo yapımız şu şekilde olsun:
TABLO 1
-------------------
ID - MARKA
1 - FORD
2 - TOFAŞ
3 - VW
Burada Tablo2'deki MID alanı Tablo1'deki ID ile ilişkilidir. Örneğin Tablo2 6 numaralı ID Doblo model arabamızın MID değeri 2'dir. Tablo1'de 2 numaralı ID'ye baktığımızda markanın TOFAŞ olduğunu görüyoruz. Şimdi hangi markadan kaç adet model olduğunu tek ve pratik bir sorguyla bulabiliriz. Sorgu içinde sorgu zahmetine son ! :)
SELECT marka, (select count(ID) from tablo2 where tablo2.MID=tablo1.ID
limit 1) AS marka_sayisi FROM tablo1 ORDER BY marka_sayisi DESC
Yalnız belirtmek isterim ki; bu işlem sitenizi yoracaktır. En mantıklısı tablo1 yani markalar tablosunda "model_sayisi" adında alan oluşturup her model ekleme ve silmede o alanı artırıp azaltmanız hem kod kalabalığı açısından hemde sitenin yorulmaması açısından daha sağlıklı olacaktır.
Kolay gelsin.
Currently 3.90/5
Değelendirmek için üye girişi yapmanız gerekmektedir
"SQL' de İlişkili Tablolardan Kayıt Sayısı Bulmak" dersi için 5 yorum var
Evet MsSQL Server yada alternatif MySQL Maestro gibi programlarla çok pratik yapabilirsiniz ancak ben öğrenme aşamasında buna karşıyım. İlk önce bu şekilde mantık öğrenilir daha sonra pratiğe geçilir.
Hiç bir bilgisayar kursunda size mantığı öğretmeden programı kullanmayı öğretmezler.
UYARI: SANALKURS'ta yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. SANALKURS'ta yer alan hiçbir makale, yazarından izinsiz başka bir yerde yayınlanamaz. SANALKURS kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu her türlü fikri eser, fotoğraf, resim vb. materyal ve ürünleri kullanamazlar. SANALKURS kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir. Söz konusu haksız kullanım nedeniyle SANALKURS .NET'in hiçbir hukuki sorumluluğu bulunmamakta olup, haksız kullanım nedeniyle SANALKURS.NET'in üçüncü kişilere ödemek zorunda kalabileceği her türlü tazminat ve/veya adli/idari para cezaları ilgili Sanalkurs kullanıcılarından rücu edilecektir.