2011-12-22 17 views
0

1日、1週間の情報を選択するためにクエリを変更する必要があります。 私は投票のために2つのテーブルと記事のための他のテーブルを持っています、そして、それは記事テーブルからst_dateを見なければなりません。1日、1週間のデータベースから情報を選択するにはどうすればいいですか?

クエリ

SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
FROM stories 
    JOIN votes ON stories.id = votes.item_name 
GROUP BY stories.id 
ORDER BY total_votes DESC LIMIT 10 

データベース構造:

ストーリーテーブル

Stories table

投票表 enter image description here

答えて

3

を使用することにより、これを行うことができ、常に7日間ですので、あなたが実際に古い8日からのデータを必要としています。

WHERE st_date >= DATE_SUB(NOW(), INTERVAL 8 DAY) 

あなたの完全なクエリは次のようになります。

​​
+0

これはどこに問い合わせますか? – Ilja

+0

完全なクエリを追加しました。 –

+0

が面白いので、mysqlは必要に応じてWEEKもサポートしています。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html – kontur

0

あなたは週DATEDIF()のMySQL関数

1

は何かあなたはWHEREステートメントを追加する必要があるような...

st_date> =今、間隔8日

+0

vote_dateではなくst_date – Ilja

1

ルックス のようなもの

SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
FROM stories 
JOIN votes ON stories.id = votes.item_name 
WHERE PERIOD_DIFF(CURRENT_DATE , stories.st_date) < 1 
GROUP BY stories.id 
ORDER BY total_votes DESC LIMIT 10 
0

どのような期間でも結果が見つかります

st_date >= start_date AND st_date <=end_date 
関連する問題