Отображение данных на основе таймфрейма с помощью SUM - PullRequest
2 голосов
/ 31 мая 2011

В PHP и MySQL я пытаюсь отобразить элементы с большинством голосов за определенный период времени (24 часа, 1 неделя, 1 год и т. Д.). Когда кто-то голосует за элемент, в таблице записывается пользователь, идентификатор элемента, голос и время, например:

Table1

username |  itemid | vote | time
   asdf  |    127  |   1  |  1306726126
   asdf  |    124  |  -1  |  1306726123
    bob  |    127  |   1  |  1306726129
    bob  |    124  |   1  |  1306726123

Теперь у меня есть другая таблица с деталями.

Table2

itemid  | name  | category | date | etc

То, что я ХОЧУ сделать, это вызвать таблицу для отображения всех данных из таблицы 2 только для элементов с голосами за последние 24 часа и отсортировать их по голосам. Это означает, что мне нужно СУММИТЬ голоса с ВРЕМЯМ <24 часа, затем ПРАВО ПРИСОЕДИНИТЬСЯ (?) К моей другой базе данных? Я не знаю, мне трудно понять, как мне поступить. Есть предложения? </p>

1 Ответ

1 голос
/ 31 мая 2011

Нечто подобное должно работать.

SELECT SUM(Table1.vote) as votes, Table2.* FROM Table2            
    LEFT JOIN Table1 ON Table1.itemid=Table2.itemid                
    WHERE Table1.`time`>=DATE_SUB(Table1.`time`, INTERVAL 24 HOUR) 
GROUP BY Table1.itemid                                             
ORDER BY Table1.votes DESC  
...