Вопрос по SQL

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

Вопрос по SQL

Сообщение sysrepos »

Добрый день!
Есть таблица 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 »

Могу ошибаться, но, цитата из MapInfo, "Динамически можно объединять только базовые таблицы". Другими словами объединить выборки в ещё какую-то одну темповскую таблицу видимо не получится.
juffin_h
Завсегдатай
Сообщения: 265
Зарегистрирован: 22 окт 2012, 08:35
Репутация: 50
Откуда: Нижний Новгород

Re: Вопрос по SQL

Сообщение juffin_h »

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 »

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

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

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

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