Я пишу сценарий обрезки, чтобы удалить контент с моего сайта, который был загружен более недели назад и к которому обращались 0 или 1 раз, также на прошлой неделе.
Есть 2 таблицы:
- daily_hits - в нем хранится идентификатор элемента, дата и количество попаданий, которые этот элемент получил в эту дату.
- видео - хранит актуальный контент
Я придумал это.
$last_week_date = date('Y-m-d',$now-(60*60*24*7));
$last_week_timestamp = $now-(60*60*24*7);
SQL
SELECT
vid_id,
COALESCE(sum(hit_hits),0) as total_hits
FROM videos
LEFT JOIN daily_hits
ON vid_id = hit_itemid
WHERE (hit_date >= '$last_week_date') AND vid_posttime <= '$last_week_timestamp'
GROUP BY hit_itemid
HAVING total_hits < 2
Это выводит элементы, к которым был доступ один раз за последнюю неделю .... но не те, к которым вообще не было доступа. Если за последнюю неделю к элементу вообще не было доступа, в таблице daily_hits не будет записей. Я подумал, что COALESE должен позаботиться об этом, но это не сработало.
Как я могу это исправить?