В каждой таблице есть много строк с количеством. Как и в этом, у меня есть разное количество суммы в каждой таблице. Имя каждого имени таблицы отличается. Как я могу получить общее количество всех значений в четырех таблицах в одном запросе? Есть ли способ?Как я могу получить общее количество из четырех разных таблиц в одном запросе
1
A
ответ
2
Вы попробовали что-то вроде этого?
select sum(val) from (
select sum(col1) as val from table1 where criteria1 = 'x'
union all
select sum(col2) from table2 where criteria2 = 'y'
union all
select sum(col3) from table3 where criteria3 = 'z'
union all
select sum(col4) from table4 where criteria4 = 'w'
) newTbl
0
использовать производные таблицы - возможно, вы хотите сделать что-то подобное, чтобы получить все результаты в одной строке!
select
u.user_count,
c.country_count
from
(
select count(*) as user_count from users where username like 'f%'
) u
join
(
select count(*) as country_count from country
) c;
более comlpex пример: http://pastie.org/921407
В некоторых базах данных команда объединения автоматически удаляет повторяющиеся строки. Это будет проблемой, если вы получите ту же сумму из двух таблиц. Используйте 'union all' для сохранения дубликатов. – BenV
Хорошая точка. Отредактировал мой ответ. – MJB
Я использовал этот способ, я получил этот тип ошибок. # 1248 - Каждая производная таблица должна иметь свой собственный псевдоним Y Это так? и еще одна вещь «союз все» работает в mysql? – Karthik