Вы не можете поместить операторы SHOW
в подзапрос, как в вашем примере. Единственный оператор, который может входить в подзапрос - это SELECT
.
Как уже говорилось в других ответах, вы можете запросить INFORMATION_SCHEMA напрямую с помощью SELECT
и таким образом получить гораздо большую гибкость.
Операторы MySQL SHOW
являются внутренне просто запросами к таблицам INFORMATION_SCHEMA.
Пользователь @physicalattraction разместил этот комментарий к большинству других ответов:
Это дает вам (мета) информацию о таблицах, а не о содержимом таблицы, как предполагалось в ОП. - физическая привлекательность
Напротив, вопрос ОП не говорит о том, что они хотят выбрать данные во всех таблицах. Они говорят, что хотят выбрать из результата SHOW TABLES
, который является просто списком имен таблиц.
Если OP хочет выбрать все данные из всех таблиц, то ответ - нет, вы не можете сделать это одним запросом. Каждый запрос должен называть свои таблицы явно. Вы не можете сделать имя таблицы переменной или результатом другой части того же запроса. Кроме того, все строки данного результата запроса должны иметь одинаковые столбцы.
Таким образом, единственный способ выбрать все данные из всех таблиц - это запустить SHOW TABLES
, а затем для каждой таблицы, указанной в этом результате, выполнить другой запрос.