Вопрос по SQL

MapInfo, MapBasic
Ответить
sysrepos
Активный участник
Сообщения: 128
Зарегистрирован: 07 окт 2012, 16:25
Репутация: 20
Откуда: Москва

Вопрос по SQL

Сообщение sysrepos » 25 июл 2013, 08:37

Добрый день!
Есть таблица Numen (и таблицы tab1, tab2, tab3)
и допустим такие запросы:
select * from Numen, tab1 where Numen.Obj Intersects tab1.Obj into q1
select * from Numen, tab2 where Numen.Obj Intersects tab2.Obj into q2
select * from Numen, tab3 where Numen.Obj Intersects tab3.Obj into q3

вопрос: как мне получить таблицу таблицу Q4, объединенную из q1,q2,q3 (с помощью запросов, без сохранения таблиц q1,q2,q3 на диске)
(в обычных базах данных это делает оператор UNION)

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

Re: Вопрос по SQL

Сообщение Slinger » 25 июл 2013, 09:09

Могу ошибаться, но, цитата из MapInfo, "Динамически можно объединять только базовые таблицы". Другими словами объединить выборки в ещё какую-то одну темповскую таблицу видимо не получится.

juffin_h
Завсегдатай
Сообщения: 265
Зарегистрирован: 22 окт 2012, 08:35
Репутация: 50
Откуда: Нижний Новгород

Re: Вопрос по SQL

Сообщение juffin_h » 26 июл 2013, 09:39

Slinger писал(а):Другими словами объединить выборки в ещё какую-то одну темповскую таблицу видимо не получится.
Это так. Необходимо, чтобы Q4 была реальной таблицей. Т.е. ее предварительно надо создать.Тогда:
Insert Into Q4 ( COL1[, COL2...]) Select COL1[, COL2...] From Q1
Insert Into Q4 ( COL1[, COL2...]) Select COL1[, COL2...] From Q2
Insert Into Q4 ( COL1[, COL2...]) Select COL1[, COL2...] From Q3


Либо зайти с другого конца. Временно объединить исходные таблицы. Можно не создавать временную таблицу и все сложит в первую.
Insert Into tab1 ( COL1[, COL2...]) Select COL1[, COL2...] From tab2
Insert Into tab1 ( COL1[, COL2...]) Select COL1[, COL2...] From tab3

И теперь
select * from Numen, tab1 where Numen.Obj Intersects tab1.Obj into q4

tab1 надо восстановить, либо закрыть без сохранения, либо использовать временную таблицу.

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Вопрос по SQL

Сообщение Boris » 27 июл 2013, 02:04

Небольшое дополнение, когда очень хочется "все в одном", то MapInfo разрешает использовать в условии WHERE оператора SQL условие, обращенное на выборку SQL, основанную на операторах равно, не равно, ANY, IN.

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей