Поиск с использованием between - MySQL
Формулировка задачи:
День добрый!
Собственно вопрос: хочу вывести имена-номера всех тех, кто звонил в определенный квартал (например январь 01 по апрель 04)
Но при попытке вывести мне выдает 70+к записей (а в сумме у меня записей лишь 6,5к в calls и 31 users) собственно в чем может быть проблема ? А то как-то повис
Запрос делал ~такой:
Дату записываю как год-месяц-день-время(часы,минуты,секунды)
Структура таблиц у меня такая: (calls и users соответственно)
и вот прикреплю данные для заполнения табличек:
my_calls.zip
SELECT name, call_time FROM 'calls' WHERE call_time BETWEEN 2012-01-01 00:00:00 AND 2012-04-30 00:00:00
Решение задачи: «Поиск с использованием between»
textual
Листинг программы
SELECT u.*, COUNT(c.id) AS `count_calls`, c.call_time FROM `users` u JOIN `calls` c ON c.id_user = u.id WHERE c.call_time BETWEEN DATE('2012-01-01') AND DATE('2012-04-01') GROUP BY u.id
Объяснение кода листинга программы
В этом коде выполняется запрос к базе данных с использованием SQL-оператора SELECT. В результате выполнения запроса получаем следующие данные:
- Имя пользователя (users.name)
- Фамилия пользователя (users.surname)
- Количество звонков (count_calls)
- Время звонка (calls.call_time) Для получения этих данных происходит следующее:
- Используется оператор JOIN для объединения таблиц users и calls по полю id_user.
- В WHERE-клозе устанавливается условие, что время звонка (calls.call_time) должно быть больше или равно 2012-01-01 и меньше или равно 2012-04-01.
- В GROUP BY указывается, что результат запроса должен быть сгруппирован по id пользователя (users.id).
- Используется функция DATE() для преобразования времени звонка в формат даты.
- Используется функция COUNT() для подсчета количества звонков для каждого пользователя.
- Используется оператор AS для присвоения псевдонима
count_calls
результирующему полю с количеством звонков. - Используется оператор ON для указания условия объединения таблиц.
- Используется оператор FROM для указания таблиц, которые участвуют в запросе. Полученные данные будут отсортированы по id пользователя (users.id) в порядке возрастания.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д