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

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