2016-06-22 10 views
0

私は蛇足のスニペットテーブルを持っています。評価テーブルの上セレクトトップ3過去7日間

rating table

iは、投票とrating_dateとそのproduct_idに評価しているuser_idproduct_idvoteの記録を保存しています。

ここでは、過去7日間(現在の日付から)に最大の投票総数を持つトップ3のproduct_idを取得する必要があります。 PRODUCT_IDの最大投票合計レコードの期待プットアウト

: -

1)過去7日間

2)の合計のproduct_id 8965持っている403の最大voteproduct_id 4024は、最後の合計の36最大voteを持っています7日

3)product_id 2015は、これが最後の7ダの投票のすべてのトップ3の最大の和であり、最後の7日間の合計の最大5 vote

を持っていますysだから私はこの出力に応じてprodut_idを取得しています。

私はちょっとしたコードを試しましたが、間違ったものがありました。

<?php 
$query = mysql_query("SELECT SUM(vote) AS 'meta_sum', product_id 
FROM rating 
where rating_date >= curdate() - INTERVAL '7' DAY 
    AND rating_date < curdate() - INTERVAL '1' DAY 
GROUP BY product_id 
ORDER BY meta_sum DESC LIMIT 3") OR DIE(mysql_error()); 
while($row = mysql_fetch_assoc($query)) 
{ 
    $topexpert =$row["product_id"]; 
    $toprating =$row["meta_sum"]; 
    ?> 
+0

が間違って定義し、これらのクエリと交換してください、あなたはエラーを取得していますか? – sagi

+0

whileループに '}'がありません。 –

答えて

1

SELECT SUM(vote) AS 'meta_sum', product_id 
FROM rating 
where rating_date BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() 
GROUP BY product_id 
ORDER BY meta_sum DESC LIMIT 3 
関連する問題