mysql SELECT запрос с левым соединением не приводит к ожидаемому результату. Я надеюсь, что кто-то может показать мне или указать мне в правильном направлении,Mysql query LEFT JOIN неожиданный результат
Я пытаюсь построить запрос, где я получаю все пользователи имя из таблицы «пользователей» и выборки сумма все время они провели за конкретную дату из главной таблицы. Я использовал левое соединение, но я не получаю результат, как ожидалось.
SUM(m.time_spent) as sum_total_time
FROM master as m
LEFT OUTER JOIN users as u ON u.user_id = m.user_id
WHERE m.date_created >= '2016-05-09'
AND m.date_created <= '2016-05-13'
GROUP BY name
ORDER BY name
главной таблица
master_id user_id time_spent date_created
1 1 40 2016-05-01
2 2 36 2016-05-02
3 3 56 2016-05-03
4 2 33 2016-05-03
5 1 32 2016-05-05
nth nth nth number nth date
пользователей таблица
user_id first_name last_name
1 James Green
2 Robert Cox
3 Andy Roger
etc etc etc
Я хочу, чтобы результат вывода должен выглядеть следующим образом:
user_id Name sum_total_time
1 James Green 62
2 Robert Cox 69
3 Andy Roger 56
4 Brian Harper 0
5 Angel Lee 0
6 Andrew Martin 55
.....
.....
Nth Name Nth value
You используйте 'WHERE m.date_created> = '2016-05-09'' И ваш date_created меньше этой даты. И что такое AND m.date_created ??? Где условие? –
3 вещи: 1) Таблица на левой стороне должна быть пользователем (или просто переключать ее на правое соединение), а 2) сумма должна «coalesce (m.time_spent, 0)» 3) переместить детали предложения where в соединение, поскольку они должны применяться до объединения данных. – xQbert
какой результат вы получаете вместо этого? – Ishamael