Диапазон дат MySQL SELECT + JOIN запрос с использованием столбца с CURRENT_TIMESTAMP

0

Я использую этот запрос:

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) с определенного дня, а также группировать результаты по часам (но это для другого запроса).

  • 0
    Я удивлен, что запрос работает, так как в агрегате отсутствует предложение GROUP BY ....
  • 0
    @Leslie: MySQL поддерживает «скрытые столбцы» в GROUP BY
Показать ещё 2 комментария
Теги:
database
datetime

1 ответ

0
Лучший ответ

Использование:

   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()). Имейте в виду, что МЕЖДУ включительно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню