Есть четыре таблицы, у каждого из них есть поля, под названием price (значение которого нужно суммировать). Делаю отчет, нужно суммировать поля этих четырёх таблиц.
Нужно сумма всех полей price. Как мне это выполнять?
Всё очень просто. Вот самый простой запрос:
SELECT
SUM(table1.price) AS sumPrice1,
SUM(table2.price) AS sumPrice2,
SUM(table3.price) AS sumPrice3,
SUM(table4.price) AS sumPrice4
FROM
table1, table2, table3, table4
LIMIT 1
Потом PHP получаем суммы столбцов каждой таблицы и складываем:
$resSum = $row['sumPrice1'] + $row['sumPrice2'] + $row['sumPrice3'] + $row['sumPrice4'];
echo $resSum; // сумма всех столбцов 4-х таблиц
Как самый простой способ, так сказать в лоб, это использовать UNION ALL и одним запросом с подзапросом получить одну цифру:
SELECT SUM(`sum`) AS `total` FROM (
(SELECT SUM(`price`) AS `sum` FROM `table_first`) UNION ALL
(SELECT SUM(`price`) AS `sum` FROM `table_second`) UNION ALL
(SELECT SUM(`price`) AS `sum` FROM `table_third`) UNION ALL
(SELECT SUM(`price`) AS `sum` FROM `table_last`)
) AS `all_tables`;
Не знаю сколько у вас записей и как быстро этот запрос будет летать, возможно лучше будет выполнить 4 отдельных простых запроса к каждой таблице и потом суммировать на PHP.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости