У меня есть база данных MYSQL, которая содержит данные о моих клиентах, которые используют наши услуги каждый день.mysql count (*) из нескольких таблиц
Каждая таблица в базе данных представляет собой один 24-часовой период и все транзакции клиентов, которые имели место в этот период.
Я хотел бы подсчитать общее количество транзакций в течение нескольких дней
до сих пор у меня есть оператор выбора, который делает следующее
select
(
select count(customer) from 2010Dec28
where customer='<customer name>'
) as t1,
(
select count(customer) from 2010Dec29
where customer='<customer name>'
)as t2;`
но это возвращает результат в виде двух отдельных подсчетов
| t1 | t2 |
| 1438 | 16282 |
1 row n set (0.00 sec)`
Мой вопрос в том, как я могу сгенерировать сумму этих двух результатов, не делая этого в своем коде приложения.
Я думаю, что «каждая таблица в базе данных представляет собой один 24-часовой период» - это точка, в которой вы должны остановиться и пересмотреть свой дизайн. –
Следуйте советам, которые люди дают вам и исправляют ваш дизайн. У вас не должно быть отдельной таблицы для каждой даты. В лучшем случае у вас может быть одна таблица для данных в реальном времени и одна таблица для архивированных данных. Дата представляет собой столбец в разных строках таблицы, а не имя таблицы. Тогда запрос на подсчет по дате является простым, как может быть. Если вам нужно временное решение, пока вы не сможете исправить ваш дизайн, используйте запрос «UNION ALL», чтобы объединить несколько запросов в один, а затем заверните весь союз в другой «SELECT» на 'SUM' все подсчеты. –
каждый стол за каждый день - худшая идея, когда-либо я видел, неэффективна, не поддающаяся оценке – Svisstack