Вверх ↑
Этот топик читают: Гость
Ответов: 28
Рейтинг: 0
#1: 2019-07-26 13:36:20 ЛС | профиль | цитата
Подскажите есть SQL БД с кучей таблиц.
К примеру: нужно вывести все значения из таблицы table1 по таблицу table5, в одну таблицу MT.
Как правильно написать запрос?
Так:

SELECT * FROM table1, table5 
не правильно.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16473
Рейтинг: 1212
#2: 2019-07-26 14:54:58 ЛС | профиль | цитата

SELECT * FROM table1;
SELECT * FROM table2;
SELECT * FROM table3;
SELECT * FROM table4;
SELECT * FROM table5;
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 28
Рейтинг: 0
#3: 2019-07-26 15:23:59 ЛС | профиль | цитата
Tad писал(а):

SELECT * FROM table1;
SELECT * FROM table2;
SELECT * FROM table3;
SELECT * FROM table4;
SELECT * FROM table5;

Спасибо.
Tad, а если таблиц более 50?


SELECT * FROM table1;
SELECT * FROM table2;
.....................
.....................
SELECT * FROM table50;
Нет ли более короткого запроса?
карма: 0

0
Главный модератор
Ответов: 2696
Рейтинг: 354
#4: 2019-07-26 16:31:53 ЛС | профиль | цитата
BaseD писал(а):
а если таблиц более 50?

Значит используется неоптимальный алгоритм работы с данными.
карма: 8
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 16473
Рейтинг: 1212
#5: 2019-07-26 16:36:28 ЛС | профиль | цитата
BaseD писал(а):
а если таблиц более 50
Одинаковых?
Если ДА - значит БД спроектирована неправильно. --
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 28
Рейтинг: 0
#6: 2019-07-26 16:40:01 ЛС | профиль | цитата
Я вас понял, спасибо.
карма: 0

0
Ответов: 36
Рейтинг: 0
#7: 2019-07-26 19:55:49 ЛС | профиль | цитата
Посмотрите еще оператор UNION

Редактировалось 1 раз(а), последний 2019-07-26 19:56:09
карма: 0

0
Ответов: 16473
Рейтинг: 1212
#8: 2019-07-28 22:24:06 ЛС | профиль | цитата
Vandjer, вот так выглядит запрос с UNION

SELECT * FROM table1
UNION (SELECT * FROM table2)
UNION (SELECT * FROM table3)
UNION (SELECT * FROM table4)
............................
............................
UNION (SELECT * FROM table50);
но применение UNION значительно увеличит время выборки, т.к. UNION устраняет дубликаты (повторы).
UNION ALL сработает быстрее т.к. дубликаты ему по барабану.
Что хочет BaseD непонятно.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 28
Рейтинг: 0
#9: 2019-08-07 16:59:10 ЛС | профиль | цитата
Tad, каждый день сохранялась новая таблица и именем ей была соответствующая дата. Мне нужно было вывести все таблицы от одной даты, до другой в одну MT таблицу. Но как вы правильно подсказали:
Nic писал(а):
Значит используется неоптимальный алгоритм работы с данными.

Tad писал(а):
БД спроектирована неправильно. --

так поступать было неправильно, поэтому все переделал
Все данные за день (дату) сохраняю в одну таблицу, а уже потом сортирую их запросом к БД.

Редактировалось 2 раз(а), последний 2019-08-07 17:02:09
карма: 0

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)