• 29-04-2020, 16:12:18
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.

    bu şekilde bir veri tabanı var;

    1)En çok yorum yapan üyeleri azalan sırada listelemek istiyorum şöyle bir sql sorgusu yazdım yazdım (SELECT u.uyeID,u.ADI,U.SOYADI FROM tbluye u,tblyorum y WHERE u.uyeID=y.uyeID ORDER by COUNT(y.YORUM) DESC ) sonucu şu şu şekilde;
    en cok yorum yapan ensar 5 yorum ama harun diye bir kullanıcı daha var o 4 yorum ama harun cıkmıyor neden?

    2)ikinci sorgum sisteme en son 1 ay içerisinde giren yöneticiler soyle bir sorgum var (SELECT y.ADI,y.SOYADI FROM tblyonetici y,tbllog WHERE TARIH >= NOW() - INTERVAL 1 month)
    ama fazladan sadece erdem ve kerem olcagına birer tane daha cıkıyor.

    3) üçüncü ve son sorgum en çok makale yazan yazarı kaç tane makale yazdıysa onunla beraber listlelemek istiyorum sorgum şu şekilde (SELECT y.ADI,y.SOYADI,COUNT(m.yazarID) FROM tblyazar y,tblmakale m WHERE y.yazarID=m.yazarID)
    burada databasede 3 tane makale var 2 tanesini ahmet 1 tanesını baska bir yazar yazmıs ama sadece ahmet cıkıyor ve makale sayısı 2 tane cıkacagına 3. makalede ahmete eklenıyor ve diğer yazar listelenmıyor nerede hatalarım var bilgisi olan varsa cevaplarsa sevinirim çok teşekkürler.
  • 29-04-2020, 16:18:11
    #2
    Çok karışık bir yapı kullanmışsın. Yazmak istedim ancak bu yapıyla çok sıkıntı çekersin.

    SELECT u.uyeID, COUNT(*) FROM tbluye uye
    INNER JOIN tblyorum yorum ON uye.uyeID = yorum.uyeID
    GROUP BY u.uyeID
    ORDER BY COUNT(*) DESC


    birincisini yazmak istedim. Test etmedim.
  • 29-04-2020, 16:32:56
    #3
    byvolkan61 adlı üyeden alıntı: mesajı görüntüle
    Çok karışık bir yapı kullanmışsın. Yazmak istedim ancak bu yapıyla çok sıkıntı çekersin.

    SELECT u.uyeID, COUNT(*) FROM tbluye uye
    INNER JOIN tblyorum yorum ON uye.uyeID = yorum.uyeID
    GROUP BY u.uyeID
    ORDER BY COUNT(*) DESC


    birincisini yazmak istedim. Test etmedim.
    merhaba teşekkürler öncelikle tavsiyenizi dikkate alacagım SELECT uye.uyeID, COUNT(*) FROM tbluye uye INNER JOIN tblyorum yorum ON uye.uyeID = yorum.uyeID GROUP BY uye.uyeID ORDER BY COUNT(*) DESC bu komut ile
    bu şekilde cıktı alıyorum uyeID ile count arasına uye ismini koymaya çalıştım(SELECT uye.uyeID,uye.ADI)şeklinde hata verdi nasıl koyabilirim? ama çalışıyor sorgu
  • 29-04-2020, 16:37:54
    #4
    Cheresha adlı üyeden alıntı: mesajı görüntüle
    merhaba teşekkürler öncelikle tavsiyenizi dikkate alacagım SELECT uye.uyeID, COUNT(*) FROM tbluye uye INNER JOIN tblyorum yorum ON uye.uyeID = yorum.uyeID GROUP BY uye.uyeID ORDER BY COUNT(*) DESC bu komut ile
    bu şekilde cıktı alıyorum uyeID ile count arasına uye ismini koymaya çalıştım(SELECT uye.uyeID,uye.ADI)şeklinde hata verdi nasıl koyabilirim? ama çalışıyor sorgu
    uye adını da select'in içine koymak istiyorsan groupby içerisine üye adınıda eklemen lazım. id ve isime göre gruplayacak o zaman.
  • 29-04-2020, 16:45:29
    #5
    byvolkan61 adlı üyeden alıntı: mesajı görüntüle
    uye adını da select'in içine koymak istiyorsan groupby içerisine üye adınıda eklemen lazım. id ve isime göre gruplayacak o zaman.
    SELECT uye.uyeID,uye.ADI COUNT(*) FROM tbluye uye INNER JOIN tblyorum yorum ON uye.uyeID = yorum.uyeID GROUP BY uye.uyeID,uye.ADI ORDER BY COUNT(*) DESC Hata nerede hocam
  • 29-04-2020, 19:22:18
    #6
    Cheresha adlı üyeden alıntı: mesajı görüntüle
    SELECT uye.uyeID,uye.ADI COUNT(*) FROM tbluye uye INNER JOIN tblyorum yorum ON uye.uyeID = yorum.uyeID GROUP BY uye.uyeID,uye.ADI ORDER BY COUNT(*) DESC Hata nerede hocam
    Hata vermiyor mu sorgu? Çıktısı ne oluyor?
  • 29-04-2020, 22:01:22
    #7
    select u.uyeid, u.adi, count(*) as yorum_sayisi
    from tblyorum y
    join tbluye u on y.uyeid=u.uyeid
    group by u.uyeid, u.adi
    order by count(*)


    select y.uyeid, u.adi, count(*) as giris_sayisi
    from tbllog l
    join tblyonetici yon l.yoneticiid=y.yoneticiid
    where l.TARIH >= NOW() - INTERVAL 1 month) 
    group by u.uyeid, u.adi
    order by count(*)

    makale yazar ayni sekilde


    group by degistirerek bu ay encok giren/yorum yazan/ makale /yazan

    her ay encok yoru atan ilk 5 uye

    bunun gibi sorgularda
    row_number partition by order by kullanabilirsin
  • 30-04-2020, 02:48:21
    #8
    suleymanyaldiz adlı üyeden alıntı: mesajı görüntüle
    select u.uyeid, u.adi, count(*) as yorum_sayisi
    from tblyorum y
    join tbluye u on y.uyeid=u.uyeid
    group by u.uyeid, u.adi
    order by count(*)


    select y.uyeid, u.adi, count(*) as giris_sayisi
    from tbllog l
    join tblyonetici yon l.yoneticiid=y.yoneticiid
    where l.TARIH >= NOW() - INTERVAL 1 month) 
    group by u.uyeid, u.adi
    order by count(*)

    makale yazar ayni sekilde


    group by degistirerek bu ay encok giren/yorum yazan/ makale /yazan

    her ay encok yoru atan ilk 5 uye

    bunun gibi sorgularda
    row_number partition by order by kullanabilirsin
    Çok sağolun