SQL' de İlişkili Tablolardan Kayıt Sayısı Bulmak

Kayıt
7 Haziran 2008
Mesaj
533
Tepki
6
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

TABLO 2
---------------------
ID - MID - URUN
1 - 1 - MUSSTANG
2 - 1 - FIESTA
3 - 1 - CONNECT
4 - 2 - ŞAHİN
5 - 3 - GOLF
6 - 2 - DOBLO

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.
 
Kayıt
23 Kasım 2007
Mesaj
296
Tepki
59
@hyPer darKness

ya bende visual studyo 2008 var full 4-5 cıgabayt bu dedıkelrını onda mı uygulayacazı
 
Kayıt
7 Haziran 2008
Mesaj
533
Tepki
6
SQL veritabanında uygulicaksın ilk önce tablo oluşturucaksın daha sonra aşağıdaki kodlar sayesinde veritabanı içinde sorgulama yapabilirsin ;)
 
Yukarı Alt