У меня есть несколько таблиц с одинаковой структурой. Все, что я хочу, это получить все результаты из всех таблиц из базы данных.MySQL SELECT * FROM table1, table2, table3
Например:
Table1:
id | Name
-----------
1 | John
2 | Alex
3 | Patrick
4 | Donald
5 | Jane
Table2:
id | Name
-----------
1 | Ben
2 | Dale
3 | Kane
4 | Tom
5 | George
Мой желаемый результат с Выбрать Название FROM ... является:
Name
-------
John
Alex
Patrick
Donald
Jane
Ben
Dale
Kane
Tom
George
Есть ли способ сделать это легко и без использования UNION, как: SELECT * FROM table1 UNION SELECT * FROM table2 UNION SELECT * FROM Table3 ....
Поскольку это делает мой запрос так долго, и это боль для me.Probably у меня будет более 20-30 таблиц в базе данных. Я ищу что-то вроде SELECT * FROM table1, table2 .. и т. Д.
Спасибо.
UPDATE
Я сделал это так (в PHP), я надеюсь, что это помогает также для других:
$dbc1 = $db->query("SELECT group_concat(table_name) AS tables FROM information_schema.tables WHERE table_schema='dbname'");
Это возвратные запрос имена всех таблиц, как 1 строка с запятой разделили вот так: таблица1, таблица2, таблица3 .... Тогда я взорву эту строку, и я использовал ее в цикле foreach.
$dbc1_ftchd = $dbc1->fetch(PDO::FETCH_ASSOC);
foreach(explode(',',$dbc1_ftchd['tables']) as $next_tb_name){
echo $next_tb_name.'<br>';
}
Теперь я в состоянии использовать все таблицы, как я хочу, один за другим, вместо использования их все одновременно. Но не проблема, это для меня тот же результат.
Спасибо всем, кто помог мне :)
В каком смысле вы имеете в виду «долго»? Это занимает слишком много времени, или длина строки запроса «слишком длинная»? Если последнее, вы имеете в виду слишком долго для РСУБД принимать или слишком много печатать? – Uueerdo
Наличие 20-30 идентичных таблиц - это признак, что что-то пошло с ошибкой в дизайне базы данных. – Uueerdo
Я имею в виду, строка запроса слишком длинная, извините за недоразумение. – ofarukcaki