объединение двух одинаковых таблиц

vipTelnet
Дата: 15.01.2013 17:38:01
Всем привет
Есть 2 абсолютно одинаковые таблицы скажем table1 и table 2 нужно их объединить да так что бы записи table1 оказались выше записей table 2 и полученный результат сохранить в таблицу table3
vipTelnet
Дата: 15.01.2013 17:43:47
Да забыл указать может это важны таблицы не пронумерованы и не имеют поля auto increment
tanglir
Дата: 15.01.2013 17:55:06
vipTelnet,

[url=]select 1 orderfield,* from table1
union all
select 2,* from table2
order by orderfield[/url]при желании обернуть ещё в один запрос, убирающий из результатов orderfield...
Akina
Дата: 15.01.2013 18:09:16
vipTelnet
что бы записи table1 оказались выше записей table 2
Что такое "выше"? в SQL нет такого понятия. Если "в начале выборки" - то при какой сортировке? без сортировке порядок записей не определён (в т.ч. имеет право в любой момент произвольно поменяться).
vipTelnet
Дата: 16.01.2013 19:57:21
Так с объединением двух таблиц разобрался.
Теперь после объединения нужно добавить поле Id к уже отсортированным данным


CREATE TABLE `table1` SELECT * FROM `11111` UNION ALL SELECT * FROM `22222`

запрос на объединение таблиц был исполнен за 31.655638933182 сек

CREATE TABLE `table2` 
SELECT @i := @i +1 AS id, `table1`. * FROM `table1` ,
 ( SELECT @i :=0 ) AS z ORDER BY `Text3` ASC , `Date1` ASC , `Date2` ASC ;

запрос на сортировку таблиц был исполнен за 30.994017124176 сек

Вот значит в начале я объединяю потом записываю в другую таблицу а потом уже сортирую добавляю порядковый номер и снова записываю в таблицу

Вопрос как можно обойтись без создания таблицы table1, т.е объединить эти 2 запроса в 1 ну или создавать какую нить временную таблицу.
Только нужно учесть что в table1 может быть до миллиона записей, стоит ли вообще заморачиваться с этой временной таблицей или при таких больших объемах данных, она сожрет до хрена оперативной памяти.
Вообщем не знаю, подскажите если кто в этом разбирается.
Akina
Дата: 16.01.2013 21:04:36
Select первого запроса добавить во второй запрос как подзапрос вместо таблицы.