Anasayfa İletişim RSS
 
Şimdi Üye Ol | Şifremi Unuttum
 
Anasayfa » PHP & MySQL (143 ders)
 
SQL' de İlişkili Tablolardan Kayıt Sayısı Bulmak

Yazar: Abdullah Tekin  
Eklenme: 13.06.2008   Okunma: 728    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

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.

Kolay gelsin.
 
  • Currently 3.90/5
Değelendirmek için üye girişi yapmanız gerekmektedir
EkleBunu Sosyal Paylam Butonu
SQL' de İlişkili Tablolardan Kayıt Sayısı Bulmak Dersini Yazdırın

"SQL' de İlişkili Tablolardan Kayıt Sayısı Bulmak" dersi için 5 yorum var

07.07.2008 Microsoft diyor ki:
Bu tür işlemlerde çok rahat MsSQL Server 2005'i tavsiye ediyorum :)

Bu tür işlemler ve daha gelişmişleri çok rahat yapılabilmektedir.

Üzerinde soru işaretleri olan bir konuydu. Makale yazman iyi olmuş.

İyi Çalışmalar.

12.07.2008 Dr.Weaver diyor ki:
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.

18.07.2008 crawler diyor ki:
ben şöyle düşündüm;

[code]SELECT marka, count(mid) FROM tablo1, tablo2
WHERE tablo1.id = tablo2.mid
GROUP BY tablo2.mid;[/code]

bu şekilde daha anlaşılır bence.

18.07.2008 crawler diyor ki:
group by kullanarak tek bir select ile de yapılabilir.

24.07.2008 karabela24 diyor ki:
Peki bu sayıyı ekrana nasıl yazdırabiliriz acaba

Üye olmadan yorum ekleyemezsiniz !


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.
 İSTATİSTİKLER
XML Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz
ÇEVRİMİÇİ 61 Ziyaretçi, 2 Üye
arsi, kartal66591
BUGÜN DOĞUM GÜNÜ OLAN ÜYEMİZ:
grafikrim (23)
Bugün: 433, Dün: 6623, Bu Ay: 25955, Toplam Ziyaret: 1882958, Toplam Üye: 133037, Son Üye: paramedice
Toplam Ders: 2011, Toplam Yazar: 45, Toplam Dosya: 34, Toplam Link: 55
   
RSS Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz