У меня есть две таблицы Users
и Inputs
со следующей схемой
Users - id, name, create_time
Inputs - id, user_id, create_time, amount
Я создал 2 похожих запроса, которые выбирают данные объединения из двух таблиц.
Первый запрос возвращает всех пользователей, добавляя поле с именем daily_amount
, которое суммирует все Inputs
каждого пользователя в заданном временном диапазоне - Работает нормально
Второй запрос - Добавляет фильтр идентификатора пользователя
Я хочу ограничить запрос конкретным пользователем по Id (id = 12 в данном запросе), я получаю противоречивые результаты, я получаю одну запись, но она имеет другой Id
, а daily_amount
- это неверен.
Ваша помощь приветствуется.
-- All users query - Works fine
SELECT Users.id,
Users.name,
Users.create_time,
SUM(Inputs.amount) AS daily_amount
FROM Users
LEFT JOIN Inputs ON Users.id = Inputs.user_id
AND Inputs.create_time BETWEEN startTime AND endTime
GROUP BY Users.id,
Users.name
-- User specific query
SELECT Users.id,
Users.name,
Users.create_time,
SUM(Inputs.amount) AS daily_amount
FROM Users
LEFT JOIN Inputs ON Users.id = Inputs.user_id
AND Users.id = 12 -- trying to filter only specific user by id
AND Inputs.create_time BETWEEN startTime AND endTime
GROUP BY Users.id,
Users.name