MySQL сложная выборка с занесением в другую таблицу

kolobok

fPanel Billing Coder
MySQL сложная выборка с занесением в другую таблицу

Доброе время суток All!

Имеются 2 БД MySQL (4.1.21), в каждой из которых есть следующая таблица:
Код:
CREATE TABLE `creature_grid` (
  `guid` bigint(20) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier',
  `position_x` int(11) NOT NULL default '0',
  `position_y` int(11) NOT NULL default '0',
  `cell_position_x` int(11) NOT NULL default '0',
  `cell_position_y` int(11) NOT NULL default '0',
  `grid` int(11) unsigned NOT NULL default '0' COMMENT 'Grid Identifier',
  `cell` int(11) unsigned NOT NULL default '0' COMMENT 'Cell Identifier',
  `map` int(11) unsigned NOT NULL default '0' COMMENT 'Map Identifier',
  KEY `idx_search` (`grid`,`cell`,`map`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Exploration System'
Как можно составить запрос, чтобы выбрать данные из таблицы test.creature_grid и добавить их в таблицу real.creature_grid.
Условие такое, что выбратьнеобходимо только те данные (определяется по полю `grid`), которых нет в таблице real.creature_grid.
Можно ли это осуществить одним запросом?
В таблице real.creature_grid - 48519 строк, а в test.creature_grid - 132457.
 

zerkms

TDD infected
Команда форума
kolobok
запросы на модификацию данных, содержащие модифицируемую таблицу в подзапросах, невозможны
 

kolobok

fPanel Billing Coder
zerkms
т.е, если я Вас правильно понял, то невозможно определить в подзапросе, есть ли такой номер в таблице, и если нет, то добавить?
 

Фанат

oncle terrible
Команда форума
интересно, а replace .. select бывает?

а вообще, лично я бы сдела всё в одной таблице и не парился
 

kolobok

fPanel Billing Coder
Фанат
а вообще, лично я бы сдела всё в одной таблице и не парился
Что в Вашем понимании все в одной таблице? Это и так все хранится в одном месте, только необходимо произвести обновление из более новой базы, сохранив при этом старые данные.
 

zerkms

TDD infected
Команда форума
Фанат
а кстати да, можно и так

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
 
Сверху