Я создаю отчет на php (mysql),
пример:
`select count(id) as tot_user from user_table
select count(id) as tot_cat from cat_table
select count(id) as tot_course from course_table`
Вот так у меня 12 таблиц.
Могу ли я сделать это одним запросом. Если бы я сделал? Процесс замедляется?
Ответы:
источник
Если вы используете таблицы MyISAM, самый быстрый способ - напрямую запрашивать статистику:
Если у вас есть InnoDB, вам нужно выполнить запрос с помощью count (), поскольку указанное значение в information_schema.tables неверно.
источник
Вы, безусловно, можете использовать оператор Select Agregation в соответствии с постулатом Бена Джеймса, однако в результате будет получено представление с таким количеством столбцов, сколько у вас есть таблиц. Альтернативный метод может быть следующим:
В таком подходе хорошо то, что вы можете явно написать операторы Union и сгенерировать представление или создать временную таблицу для хранения значений, которые последовательно добавляются из процедур с использованием переменных вместо имен таблиц. Я предпочитаю последнее, но это действительно зависит от личных предпочтений и применения. Если вы уверены, что таблицы никогда не изменятся, вам нужны данные в формате одной строки, и вы не будете добавлять таблицы. придерживайтесь решения Бена Джеймса. В противном случае я бы посоветовал гибкость, вы всегда можете взломать структуру кросс-таблицы.
источник
источник
источник
Я знаю, что это старый стек, но я опубликую этот случай выбора Multi-SQL
источник