1
У меня есть 3 проекта, времени и расходов. Я хочу объединить все 3 из них и рассчитать сумму, а также получить все соответствующие записи.Php, MySql объединить 3 таблицы и рассчитать SUM
Вот мои таблицы:
projects:
id name
=====================
1 First Project
2 Second Project
times:
id project_id hours billed
===================================================
1 1 2.0 1
2 1 3.0 0
3 2 4.30 0
expense:
id project_id amount billed
==================================================
1 1 120.00 0
2 2 35.00 1
3 2 55.00 0
4 2 45.00 0
и вот мой запрос:
SELECT
SUM(t.hours) as total_hours,
SUM(e.amount) as total_amount,
p.name
FROM
`projects` AS p
LEFT JOIN `expense` AS e
ON e.project_id = p.id
LEFT JOIN `times` AS t
ON t.project_id = p.id
WHERE t.billed = 0
AND e.billed = 0
GROUP BY p.id;
Но по какой-то причине я не могу заставить ее работать, я в конечном итоге нет записей.
Результат должен выглядеть примерно так:
Name Total Hours Total Expense
==============================================
First Project 3.00 120.00
----------------------------------------------
Second Project 7.30 100.00
----------------------------------------------
Это действительно INNER JOIN и, как EXPLAIN EXTENDED, за которым следует SHOW WARNINGS. – Strawberry
@colburton Алиасы на самом деле правильные, это была опечатка с именами таблиц. Я обновил свой пост. – Alko