Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2013 14:32:17

WorldCount
Зарегистрирован: 2012-11-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Выборка из нескольких таблиц с одинаковыми именами столбцов

Добрый день!
Перейду сразу к сути вопроса:

Есть БД на sqlite3. Есть 4 таблицы(Table1, Table2, Table3, Table4), во всех 4-х таблицах одинаковое название столбцов: id, num_file, num_user, file_date_stamp.

Понадобилось мне вытащить данные из всех таблиц разом c сортировкой по file_date_stamp. Первое решение, которое приходит в лоб, это 4 запроса, по одному для каждой таблицы, аля:

select num_file, num_user, file_date_stamp from Table1 order by file_date_stamp
с последующим склеиванием полученных данных в единый кортеж.

Но фишка в том, что в общем кортеже всё равно придется сортировать данные по file_date_stamp, а это лишняя работа.
Возможно ли вытащить данные одним запросом из всех 4-х таблиц?
Помогите пожалуйста дурачку)

Upd. Пробовал это, но не канает:
select num_file, num_user, file_date_stamp from Table1, Table2, Table3, Table4 order by file_date_stamp



- ReDesinG -

Отредактировано WorldCount (Апрель 3, 2013 16:05:20)

Офлайн

#2 Апрель 3, 2013 15:13:17

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Выборка из нескольких таблиц с одинаковыми именами столбцов

Не знаю сработает ли, но мне кажется нужно через подзапрос и union, типа

SELECT * FROM (
    SELECT * FROM Table1
    UNION ALL
    SELECT * FROM Table2
    ...
)
ORDER BY file_date_stamp

Отредактировано bismigalis (Апрель 3, 2013 15:17:30)

Офлайн

#3 Апрель 3, 2013 15:18:43

WorldCount
Зарегистрирован: 2012-11-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Выборка из нескольких таблиц с одинаковыми именами столбцов

bismigalis, да, сработало. Спасибо большое.



- ReDesinG -

Офлайн

#4 Май 5, 2013 15:21:44

kirpichtion
От:
Зарегистрирован: 2010-07-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Выборка из нескольких таблиц с одинаковыми именами столбцов

Имхо, но правильнее и дешевле JOIN'ами. Нет?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version