Есть несколько одинаковых таблиц в базе. Как сделать запрос из всех? Вот запрос на выбор из одной:
mysql_query("select * from `table` where `dt` = '20161201'");
UNION
- применяется для объединения результатов двух или более SQL-запросов в единую таблицу, состоящую из схожих строк. Оба запроса должны возвращать одинаковое число столбцов и совместимые типы данных в соответствующих столбцах.
Пример
<запрос1>
UNION [ALL]
<запрос2>
UNION [ALL]
<запрос3>
.....;
Более подробный пример
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
Можно писать UNION
или UNION ALL
.
Разница между операторами UNION
и UNION ALL
заключается в том, что первый выкидывает из окончательного результата повторяющиеся строки.
Дополнение от @teran из комментария: в отдельный столбец можно выбрать, например, имя таблицы из которой пришли данные. а-ля
...., 'customers' as tbl FROM Customers
если вдруг необходимо будет знать, откуда реально пришли строки (что будет иметь смысл в только случае UNION ALL
)
Создайте надтаблицу с использованием ENGINE=Merge. В крайнем случае объединяющий VIEW. Совсем в крайнем - UNION ALL непосредственно в запросе.
Если будете использовать просто UNION (или его синоним UNION DISTINCT) во VIEW или непосредственном запросе - приготовьтесь к могучему оверхеду на сортировку и удаление дубликатов (ну то есть тормозить будет нещадно).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеВ разных частях моего php-скрипта я выполняю запросы к БД MySQL
ЗдравствуйтеТребуется на сайте произвести подсчет, сколько записей находится в каждой категории, а так же подсчитать общее кол-во всех записей
У меня есть table на котором есть большая информация, мне нужно написать SELECT * FROM table, так чтобы SELECT возвращал меня информацию на JSON формате, например...