• 05-05-2021, 00:41:19
    #1
    merhaba arkadaşlar

    Php pdo böyle mysql sorgusu yazdım çalışıyor. Fakat count yaptığımda baya büyük sayılar veriyor. Nasıl bir yöntem kullanmalıyım. Yazıya giridiğinde bunu ip_post tablosuna tarihi ve yazilar id sini kaydediyor. ben tarihe göre ve count yaparak gun, hafta ve ay olarak çekiyorum sıralayıp. ve bunu count etmek isityorum. ama çok büyük bir rakam veriyor alakasız. var mı çözümü ?

    $sth->prepare("SELECT yazilar.*, yazilar.sayfayapisi, COUNT(ip_post.yaziid) AS Total FROM yazilar INNER JOIN ip_post ON yazilar.sayfayapisi=0 and yazilar .durum=0 and ip_post.yaziid= tarif.id and DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= ip_post.tarih GROUP BY yazilar.id, yazilar.title order by Total desc ");
  • 05-05-2021, 00:52:17
    #2
    SELECT COUNT(ip_post.yaziid) AS Total FROM yazilar INNER JOIN ip_post ON yazilar.sayfayapisi=0 and yazilar.durum=0 and ip_post.yaziid= tarif.id and DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= ip_post.tarih GROUP BY yazilar.id, yazilar.title order by Total desc
    yada

    SELECT COUNT(ip_post.yaziid) AS Total FROM yazilar INNER JOIN ip_post ON yazilar.sayfayapisi=0 and yazilar.durum=0 and ip_post.yaziid= tarif.id and DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= ip_post.tarih
    Şeklinde denediğinizde aynı şekilde büyük sayı sorunu çıkıyor mu ?


    şayet sorunsuz çalışıyor ise;


    SELECT yazilar.*, yazilar.sayfayapisi, ( SELECT COUNT(ip_post.yaziid) AS Total FROM yazilar INNER JOIN ip_post ON yazilar.sayfayapisi=0 and yazilar.durum=0 and ip_post.yaziid= tarif.id and DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= ip_post.tarih ) as says AS Total FROM yazilar INNER JOIN ip_post ON yazilar.sayfayapisi=0 and yazilar .durum=0 and ip_post.yaziid= tarif.id and DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= ip_post.tarih GROUP BY yazilar.id, yazilar.title order by Total desc
    Dipnot;

    Karmaşık ve çok dallanmalı SQL sorgularında ;

    1. https://www.jetbrains.com/datagrip/ tarzı güçlü bir IDE kullanmak gerekiyor.
    2. Veri tabanı tasarımında Column ( Kolon ) ilişkilendirme mevcuttur. Bu özelliği aktif ve doğru kullanılması durumunda SQL IDE'ler ile otomatik sorguları basit şekilde oluşturabiliyorsunuz.

    https://stackoverflow.com/questions/...ships-in-mysql

    JetBrains lisanslarını üniversite öğrencisi iseniz ücretsiz kullanabiliyorsunuz;

    https://www.jetbrains.com/community/education/#students



    Saygılarımla,
    Bedirhan ERKAN
    Yazılım Mühendisi