Добрый день!
Есть таблица 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)
Вопрос по SQL
-
- Активный участник
- Сообщения: 128
- Зарегистрирован: 07 окт 2012, 16:25
- Репутация: 20
- Откуда: Москва
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Вопрос по SQL
Могу ошибаться, но, цитата из MapInfo, "Динамически можно объединять только базовые таблицы". Другими словами объединить выборки в ещё какую-то одну темповскую таблицу видимо не получится.
-
- Завсегдатай
- Сообщения: 265
- Зарегистрирован: 22 окт 2012, 08:35
- Репутация: 50
- Откуда: Нижний Новгород
Re: Вопрос по SQL
Это так. Необходимо, чтобы Q4 была реальной таблицей. Т.е. ее предварительно надо создать.Тогда:Slinger писал(а):Другими словами объединить выборки в ещё какую-то одну темповскую таблицу видимо не получится.
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 надо восстановить, либо закрыть без сохранения, либо использовать временную таблицу.
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Вопрос по SQL
Небольшое дополнение, когда очень хочется "все в одном", то MapInfo разрешает использовать в условии WHERE оператора SQL условие, обращенное на выборку SQL, основанную на операторах равно, не равно, ANY, IN.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей