• 12-06-2021, 14:07:09
    #1
    şöyle bir senarya yazıyorum.

    resimler diye bir tablom var.
    ve yazılar diye ikinci bir tablom var.

    Çok güzell..

    resimlerin sütünları şöyle

    resim_id -- yazi_id - resim

    yazilar sütünüm da şöyle:

    yazi_id ---- baslik --- yazi


    istediğim şey tüm yazıları listeleyeceğim admin panelinde..

    listelerken yazılara ait kaç adet resim eklenmişse onun sayısını göstermek istiyorum admin panelinde hali hazırda baslik'a tarihe göre sıralıyorum. ekstra olarak resim sayısına göre de sıralamam gerekiyor.

    iki tabloyu birleştirmem gerektiğini join kullanmam gerektiğini biliyorum ama mevcut sql sorguda order by where kullanımı çok biraz karıştı.
  • 12-06-2021, 15:00:13
    #3
    Birleştirme yapmana gerek yok tek ihtiyacın sayı ise SQL sorgusunun sütun kısmında sorgu tetikleyebilirsin

    select yazi,baslik,

    ( select count( resim_id ) from resimler where yazi_id = yazilar.yazi_id) as resimsayisi

    from yazilar where istediğin kosul

    Bu şekilde bir deneyin işinizi görecektir tablo birleştirme den hızlı çalışır
  • 12-06-2021, 15:51:21
    #4
    WRaNGLeR adlı üyeden alıntı: mesajı görüntüle
    Birleştirme yapmana gerek yok tek ihtiyacın sayı ise SQL sorgusunun sütun kısmında sorgu tetikleyebilirsin

    select yazi,baslik,

    ( select count( resim_id ) from resimler where yazi_id = yazilar.yazi_id) as resimsayisi

    from yazilar where istediğin kosul

    Bu şekilde bir deneyin işinizi görecektir tablo birleştirme den hızlı çalışır
    SELECT (SELECT COUNT(resim_id) from resimler where yazi_id = yazilar.yazi_id) as resimsayisi from yazilar

    bir tek bu şekilde sorgu çalışıyor hocam resim sayısını veriyor fakat ekrana başka hiç birşey gelmiyor. select * yazarsam yazıdaki tüm sütünlar gelir diye düşündüm ama gelmedi hata verdi. yazilar sütünündakilerin tamamı getirip ek olarak bir sütünda da toplam resim sayısını göstermem gerekiyor
  • 12-06-2021, 16:04:25
    #5
    Her sütun ismini tek tek yazman gerekiyor ayrıca diğer sorgulardada * kullanmak yerine sütun isimleri kullanmak daha iyi yazmak zaman alır ama verimli çalışır
  • 12-06-2021, 16:15:50
    #6
    WRaNGLeR adlı üyeden alıntı: mesajı görüntüle
    Her sütun ismini tek tek yazman gerekiyor ayrıca diğer sorgulardada * kullanmak yerine sütun isimleri kullanmak daha iyi yazmak zaman alır ama verimli çalışır
    malesef hocam o şekilde kullanmıştım

    SELECT baslik (SELECT COUNT(resim_id) from resimler where yazi_id = yazilar.yazi_id) as resimsayisi from yazilar
  • 12-06-2021, 19:44:55
    #7
    WRaNGLeR adlı üyeden alıntı: mesajı görüntüle
    Her sütun ismini tek tek yazman gerekiyor ayrıca diğer sorgulardada * kullanmak yerine sütun isimleri kullanmak daha iyi yazmak zaman alır ama verimli çalışır
    buddy adlı üyeden alıntı: mesajı görüntüle
    malesef hocam o şekilde kullanmıştım

    SELECT baslik (SELECT COUNT(resim_id) from resimler where yazi_id = yazilar.yazi_id) as resimsayisi from yazilar
    hocam başka bi tavsiyeniz varmı?
  • 12-06-2021, 20:13:52
    #8
    Son sorgunda sütunlar arası , koymayı unutmuşsun çalışmadığında çıkan hatayı yazarsan daha iyi yardımcı olabiliriz şuan hata ne onu bilemiyorum malesef
  • 13-06-2021, 02:48:17
    #9
    select yazilar.yazi_id, yazilar.yazi_baslik, count(*) yazi_resim_sayisi
    from yazilar 
    left join resimler on yazilar.yazi_id = resimler.yazi_id
    group by 1,2