Я использую этот запрос:
SELECT p.id, count(clicks.ip)
FROM `p`
LEFT JOIN c clicks ON p.id = clicks.pid
WHERE clicks.ip = '111.222.333.444'
Чтобы выбрать клики из таблицы "c", у которой есть "pid" = "p.id". Кажется, что запрос работает нормально, но теперь я хочу использовать этот запрос с диапазонами дат. Таблица "c" имеет столбец "время", в котором используется тип данных MySQL CURRENT_TIMESTAMP (ГГГГ-ММ-ДД ЧЧ: ММ: СС). Как использовать мой запрос с диапазоном дат с помощью этого столбца?
Я хочу иметь возможность выбрать count (clicks.ip) с определенного дня, а также группировать результаты по часам (но это для другого запроса).
Использование:
SELECT p.id,
COUNT(clicks.ip)
FROM `p`
LEFT JOIN c clicks ON clicks.pid = p.id
AND clicks.ip = '111.222.333.444'
AND clicks.time BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY)
AND NOW()
Я привел пример, который будет подсчитывать клики, которые произошли между этим вчерашним (DATE_SUB(NOW(), INTERVAL 1 DAY)
) и сегодня (NOW()
). Имейте в виду, что МЕЖДУ включительно.