Суммировать значение несколько таблиц

178
15 мая 2018, 00:20

Есть четыре таблицы, у каждого из них есть поля, под названием price (значение которого нужно суммировать). Делаю отчет, нужно суммировать поля этих четырёх таблиц.

Нужно сумма всех полей price. Как мне это выполнять?

Answer 1

Всё очень просто. Вот самый простой запрос:

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-х таблиц
Answer 2

Как самый простой способ, так сказать в лоб, это использовать 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.

READ ALSO
Выборка из БД картинок PNG

Выборка из БД картинок PNG

Задать условие, что бы из БД получить все картинки с расширением *png

188
Как создать страницу через php? [требует правки]

Как создать страницу через php? [требует правки]

Как можно создать html страницу по шаблону с изменяемой частью через php в админке, например, формата siteru/index?page=page_id ?

204
как отделить php от html?

как отделить php от html?

Собственно, как выполнять подобные скрипты в отдельных файлах, чтобы разметка отдельно, php код отдельно?

226