Объединение таблиц

MapInfo, MapBasic
Ответить
LEN@
Интересующийся
Сообщения: 21
Зарегистрирован: 31 авг 2009, 18:02
Репутация: 0

Объединение таблиц

Сообщение LEN@ » 22 дек 2009, 09:28

Доброго времени суток :D
Помогите новичку кто может.
У меня такая ситуация:
Есть таблица, содержащая одну колонку, в которой хранится информация о точках(с новыми точками). А, есть еще одна таблица,хранящая информацию о старых точках. Единственно из этой таблицы(со старыми точками) мне нужны не все точки, а только те, которые принадлежат участку. Я делаю выборку из таблицы со старыми точками и выбираю нужные, а как можно вставить в таблицу с новыми точками нужные мне(выбранные) точки. Как это прописать, потому что в insert предложение where не предусмотрено.
Insert Into table [ ( columnlist ) ]
{ Values ( exprlist ) | Select columnlist From table }

______________________________________________________________________________________________________
Помогите, пожалуйста :D

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

Re: Объединение таблиц

Сообщение Boris » 23 дек 2009, 08:33

Сделать обычный запрос в котором и отобрать нужные точки. Это запрос потом использовать в качестве исходной таблицы для добавления записей (точек).

LEN@
Интересующийся
Сообщения: 21
Зарегистрирован: 31 авг 2009, 18:02
Репутация: 0

Re: Объединение таблиц

Сообщение LEN@ » 23 дек 2009, 14:41

Запрос составляется, временная таблица сохраняется. Единственно при добавлении записей получается, что базовая и временная таблица связаны. И необходимые точки вставляются в базовую таблицу, а не во временную.
Как сделать, чтобы они добавлялись во временную?

reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Объединение таблиц

Сообщение reasonat » 23 дек 2009, 15:19

а у вас таблица новых точек - это временная? Получается, после вставки старых точек надо снова делать тот-же выбор точек из базовой таблицы, но там теперь будут и старые точки этого участка. Или все старые точки заранее добавить в базовую таблицу, а потом уже выбирать все точки данного участка..

LEN@
Интересующийся
Сообщения: 21
Зарегистрирован: 31 авг 2009, 18:02
Репутация: 0

Re: Объединение таблиц

Сообщение LEN@ » 23 дек 2009, 18:09

Нет, имеется таблица Новых_точек (мы из этой таблицы возьмем все точки) Есть таблица Старые_точки в ней мы будем делать выборку точек, которые пересекают(лежат на границе участка).
Создаем новыу таблицу временную, содержащую старые точки(через select) сохраняем через commit. Потом в эту таблицу добавляем точки из Новые_точки.
insert into временная_таблица(number)
select nomer from новые_точки

получается, что название колонок из базовой таблицы Старые_точки совпадает с названием колонки временной таблицы, поэтому вставляются новые точки в базовую, а не временную таблицу.

Как можно вставить номера точек во временную таблицу, а не в базовую?

reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Объединение таблиц

Сообщение reasonat » 24 дек 2009, 15:07

Нельзя вставить во временную, не вставив в базовую. Это не отдельная таблица "временная", это всего лишь выборка строк из базовой таблицы, можно сказать, только ссылки на строки базовой таблицы.
Если нужно объединять таблицы только выборками, не "портя" базовые, тогда надо сначала Commit выборку старых точек, потом уже добавлять новые точки к сохраненной копии выборки.

LEN@
Интересующийся
Сообщения: 21
Зарегистрирован: 31 авг 2009, 18:02
Репутация: 0

Re: Объединение таблиц

Сообщение LEN@ » 25 дек 2009, 18:33

Спасибо большое я так и сделала. Все получилось :D

Ответить

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

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

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