Я пытаюсь получить данные из моей базы данных SQL, но у меня есть проблема, которую я не понимаю. Это мой запрос:
SELECT SUM(t0_.in_budget_hours) AS sclr_0,
SUM(t0_.billable_amount) AS sclr_1,
SUM(t0_.out_budget_hours) AS sclr_2,
SUM(t0_.unprod_hours) AS sclr_3,
SUM(t0_.off_hours) AS sclr_4,
SUM(t0_.duration) AS sclr_5,
SUM(t0_.in_budget_hours) / SUM(t0_.duration) * 100 AS sclr_6,
CONCAT(c1_.name, ' ', c1_.lastname) AS sclr_7,
c1_.alias AS alias_8,
c1_.email AS email_9
FROM collaborator c1_
RIGHT JOIN timesheet t0_ ON (c1_.email = t0_.email)
WHERE t0_.entry_date BETWEEN '2020-01-01 00:00:00' AND '2020-01-22 23:59:59'
GROUP BY sclr_7, c1_.alias, c1_.email
ORDER BY sclr_7 ASC
У меня много информации, рассчитанной по таблице расписаний, и я хотел бы объединить эти вычисления с именем соавтора.
Я бы хотел, чтобы все соавторы и объедините их с расписаниями, даже если у них нет расписаний (СЛЕВАЮЩЕЕ СОЕДИНЕНИЕ). Если строки, связанной с соавтором, нет, результат суммирования должен быть равен 0, но соавтор должен появиться в наборе данных результатов. Но в настоящее время, если у соавтора нет расписания BETWEEN '2020-01-01 00:00:00' AND '2020-01-22 23:59:59'
, он не будет отображаться в результатах.
Я пробовал несколько типов объединения с помощью этой темы В чем разница между INNER JOIN, LEFT JOIN, RIGHT ПРИСОЕДИНЯЙТЕСЬ И ПОЛНОСТЬЮ ПРИСОЕДИНИТЬСЯ? но у меня ничего не получалось Может кто-нибудь сказать мне, как иметь всех соавторов, даже если нет расписания?