ReLegolaS adlı üyeden alıntı: mesajı görüntüle
mesela x videosu 15.04.2015 de 5 hit aldı
aynı x videosu 14.04.2015 de 2 hit aldı.

Şimdi son 7 gün dediğimizde bu videonun aldığı hit 7 olarak gözükmesi lazım ama bizde ya 2 gözüküyor ya da 5.


select * from madvideo INNER JOIN hit ON madvideo.id = hit.video_id WHERE hit.tarih>DATE_ADD(DATE(NOW()),INTERVAL -7 DAY) group by video_id order by hit.hit

2 satırı toplayıp 7 olarak sıralamaya alıyor ama gösterirken tek satırdan gösterme yapıyor.

yani while videonun o günkü hitini gösteriyor. son 7 günün toplam hitini gösteremedim
öncelikle biraz bilgi veriyim.

select ifadesinden sonra group fonksiyonları kullanırsan sum,avg,min,max vs

select min(sütun) from ...

group by kullanmana gerek yok.

ama sen gruplama fonksiyonu kullanırsan ve başka bir sütun seçersen

select sutunx,min(sütun) from ... group by sutunx

olarak yazmak zorundasın.

sorguna gelicek olursak group by video_id ifadesi var ama select kısmında grup fonk. yok.
select * from madvideo INNER JOIN hit ON madvideo.id = hit.video_id WHERE hit.tarih>DATE_ADD(DATE(NOW()),INTERVAL -7 DAY) group by video_id order by hit.hit

select video_id,sütun1,sütun2,vs..,sum(hit sütun adı) from madvideo INNER JOIN hit ON madvideo.id = hit.video_id WHERE video_id=$videoid && hit.tarih>DATE_ADD(DATE(NOW()),INTERVAL -7 DAY) group by video_id

mysql buna izin vericek ama misal mssql de group by video_id,sütun1,sütun2 olarak yazılması gerekiyor diye biliyorum.

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:12:58 -->-> Daha önceki mesaj 15:06:29 --

ReLegolaS adlı üyeden alıntı: mesajı görüntüle
mesela x videosu 15.04.2015 de 5 hit aldı
aynı x videosu 14.04.2015 de 2 hit aldı.

Şimdi son 7 gün dediğimizde bu videonun aldığı hit 7 olarak gözükmesi lazım ama bizde ya 2 gözüküyor ya da 5.


select * from madvideo INNER JOIN hit ON madvideo.id = hit.video_id WHERE hit.tarih>DATE_ADD(DATE(NOW()),INTERVAL -7 DAY) group by video_id order by hit.hit

2 satırı toplayıp 7 olarak sıralamaya alıyor ama gösterirken tek satırdan gösterme yapıyor.

yani while videonun o günkü hitini gösteriyor. son 7 günün toplam hitini gösteremedim
select video_id,sütun1,sütun2,vs..,sum(hit sütun adı) from madvideo INNER JOIN hit ON madvideo.id = hit.video_id WHERE video_id=$video_id && hit.tarih>DATE_ADD(DATE(NOW()),INTERVAL -7 DAY) group by video_id

while döngüsü kullanmıcaksın bu sorgu için, tek satır veri alıcaksın.