Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

SQl de birden fazla count yaparak veri alma

Slm arkadaşlar 4 tablo var ve şu şekilde,

uyeler tablosu
id--isim--mail
1 -- burcu --@fdd
2 --emre -- @efg

yorumlar tablosu
id--yorumYapan--yorum
1 ----- 1 -------fsdfsdf
2 ----- 2 -------drgdrgdrg

resim tablosu
id--gonderen--yol
1 ----2---- ../sf
2 ----2---- ../dfs

video tablosu
id--gonderen--yol
1 ---- 1---- ../sdf
2 ---- 1---- ../sefg

Şu şekilde bir sonuç istiyorum ama bir türlü yapamadım
id--isim--mail--gonderdigiResim--gonderdigiVideo--yaptıgıYorum
1-- burcu-- @fdd --------0------------- 2------------ 1

yani bir kullanıcıya ait bilgileri kaç resim gönderdiğini, kaç video gönderdiğini kaç yorum yaptığını vs tek sorguyla almak istiyorum ama başaramadım,

şöyle birşey denedim ama sonuç hatalı geliyor
SELECT COUNNT(DISTINCT yorumlar.id) AS yorum, COUNNT(DISTINCT resim.id) AS resim, COUNNT(DISTINCT video.id) AS video FROM resim, video, yorumlar WHERE yorumlar.yorumYapan = 1 AND resim.gonderen = 1 AND video.gonderen = 1

Yardımcı olacak arkadaşlara şimdiden teşekkğr ederim
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    zugur adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    21 cevap - 0 soru
    Sanırım tabloları birleştirmemişsin ve anladığım kadarıyla bütün tablolarında üye id si bulunmakta.
    Bunun için bide aşağıdaki sorguyu bir dener misin ?

    SELECT COUNT(DISTINCT YR.id) AS yorum,
    COUNT(DISTINCT RS.id) AS resim, COUNT(DISTINCT VD.id) AS video
    FROM uye UYE
    left outer join yorumlar YR on UYE.id=YR.yorumYapan
    left outer join resim RS on UYE.id=RS.gonderen
    left outer join video VD on UYE.id=VD.gonderen
    WHERE UYE.id=1
    • fahrenhayt46 adlı üyenin fotoğrafı fahrenhayt46
      teşekkür ederim biraz düzenledim istediğim gibi oldu,
      12 yıl önce yazılmış
    • zugur adlı üyenin fotoğrafı zugur
      İyi çalışmalar..
      12 yıl önce yazılmış

Cevaplar

  • Supervisor adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    107 cevap - 0 soru
    select * from uyeler as uy
    join (select yorumyapan,count(id) as yorumlar from yorumlar group by yorumyapan) as yr on uy.id=yr.yorumyapan
    join (select gonderen,count(id) as video from videolar group by gonderen) as vd on uy.id=vd.gonderen
    join (select gonderen,count(id) as resimler from resimler group by gonderen) as rs on uy.id=rs.gonderen
  • amanbre adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    18 cevap - 0 soru
    Merhaba,
    sorguyu COUNNT yerine COUNT yazarak dener misin?
  • kralmermi adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    102 cevap - 6 soru
    SELECT tblcompany.name, tblcompany.id, count(tblcompanyfile.company) as companyfile, count(tblcompanyip.company) as companypage
    FROM tblcompany
    LEFT JOIN tblcompanyfile ON tblcompany.id=tblcompanyfile.company
    LEFT JOIN tblcompanyip ON tblcompany.id=tblcompanyip.company Group BY tblcompany.id


    al hocam kodu kendi tablomda yazdim kendine göre duzenle tablo isimlerini alan isimleri degiştir çalışsın