Вниз
Скачать: CL | DM;

выборка из двух таблиц с идентичной структурой (не обьединение)   Найти похожие ветки 

 
VictorT ©   (2004-12-26 20:29) [0]

не могу придумамать, как сделать одним запросом и без дополнитьельной таблицы (да и не знаю, возможно ли это).
нужно что-то типа такого (но без дополнительной таблицы):

delete from temp_table
insert into temp_table select * table1 where id > 1000 and id < 2000
insert into temp_table select * table2 where id > 1000 and id < 2000
select * from temp_table order by id


* одинаковых значений id в таблицах table1 и table2 нету.
** СУБД - MySQL


 
aus   (2004-12-26 20:39) [1]

select * from
(select * from table1
union
select * from table2) t
where id between 1002 and 1999
order by id

Возможно для MySQL без вложенного запроса, не уверен.


 
sniknik ©   (2004-12-26 20:47) [2]

по моему тоже без вложенного, и union all а не то дубли поубирает и отсортирует на попытке (не подойдет под аналог в коде вопроса)

select * table1 where id between 1001 and 1999
union all
select * table2 where id between 1001 and 1999


 
sniknik ©   (2004-12-26 20:50) [3]

хотя чего это я, сортировка как раз нужна, а дублей нет... ;( невнимателен, вот так полный аналог должен быть

select * table1 where id between 1001 and 1999
union all
select * table2 where id between 1001 and 1999
order by id
(union all всетаки предпочтительнее чтобы два разе не сортировало)


 
VictorT ©   (2004-12-26 21:07) [4]

всё это хорошо, только вот...
Оператор UNION реализован в MySQL 4.0.0.
а на хостинге MySQL 3.23.49
Переставить, соответственно, возможности не имею.


 
Vemer ©   (2004-12-26 21:15) [5]

Если нет повторяющихся значений - не проще объединить таблицы?


 
VictorT ©   (2004-12-26 21:18) [6]


> Если нет повторяющихся значений - не проще объединить
> таблицы?

В смысле, вместо двух использовать одну? К сожалению, это не подходит.


 
Vemer ©   (2004-12-26 23:58) [7]

Не верю :)..

Похоже тут больше вопрос проектирования структуры..

Если надо сохранять "различия" между значениями бывших 1-ой и 2-ой таблицы, можно дополнительное поле T_Number ввести в общей таблице, и скопировать в нее первую (T_Number = 1)и вторую (T_Number = 2) и дальше делать с данными, все что надо..

Если в 1-ой и 2-ой таблице есть несовпадающие поля - запихать их в единую всех. Небольшая денормализация никого еще не убила..


 
Fay ©   (2004-12-27 04:14) [8]

Vemer ©   (26.12.04 23:58) [7]
>> Небольшая денормализация никого еще не
М.б. "нормализация"?


 
YurikGL ©   (2004-12-27 10:43) [9]


> Vemer ©   (26.12.04 23:58) [7]

подозреваю, что речь идет о чем-то вроде статистики например, посещаемости сайта и количество записей очень-очень большое. В этом случае каждый месяц создается новая таблица в которую начинают записываться данные.


 
Vemer ©   (2004-12-27 11:22) [10]

To YurikGL:
Даже если так, то сумма строк в 2-х таблицах будет равна кол-ву строк в общей. А удобство обработки повышается. И сносить/очищать 1 таблицу проще чем 2.


 
VictorT ©   (2004-12-29 13:05) [11]

О, я уже и забыл про эту тему. Сделал так, как описал в самом первом посте. Может можно было и лучше.

А речь шла о форуме. Одна таблица основная - другая архив (в неё переносятся старые сообщения), и в ахивные темы писать нельзя.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.03 c
14-1105271522
Чеширский_Кот
2005-01-09 14:52
2005.01.30
Чужие


1-1105612228
TankMan
2005-01-13 13:30
2005.01.30
Не понимаю в чем ошибка на аsm-е


1-1106075626
Aleks
2005-01-18 22:13
2005.01.30
как из сторки скопитовать заданный символ


1-1105516483
kull
2005-01-12 10:54
2005.01.30
Повторяющийся код.


6-1099995518
Sergey18
2004-11-09 13:18
2005.01.30
Определение изменения Web-страницы




   Наверх