SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.10.2010 15:22:19

blade.kr
Участник
Зарегистрирован: 26.10.2010
Сообщений: 4

Выбор нужных элементов из первой таблицы и перенос их во вторую

Здравтсвуйте ... Нужна помощ в написании запроса который выберит нужные элементы из первой таблицы, и автоматически пропишет их во вторую.

Существует 2 таблицы: npc_vendor  и  item_template
(Для того чтобы показать их полную структуру, выложу лучше это всё кодом)

Код:

-- ----------------------------
-- Table structure for npc_vendor
-- ----------------------------
CREATE TABLE `npc_vendor` (
  `entry` mediumint(8) unsigned NOT NULL default '0',
  `slot` smallint(6) NOT NULL default '0',
  `item` mediumint(8) NOT NULL default '0',
  `maxcount` tinyint(3) unsigned NOT NULL default '0',
  `incrtime` int(10) unsigned NOT NULL default '0',
  `ExtendedCost` mediumint(8) unsigned NOT NULL default '0',
  PRIMARY KEY  (`entry`,`item`,`ExtendedCost`),
  KEY `slot` (`slot`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Npc System';

Код:

-- ----------------------------
-- Table structure for item_template
-- ----------------------------
CREATE TABLE `item_template` (
  `entry` mediumint(8) unsigned NOT NULL default '0',
  `class` tinyint(3) unsigned NOT NULL default '0',
  `subclass` tinyint(3) unsigned NOT NULL default '0',
  `unk0` int(11) NOT NULL default '-1',
  `name` varchar(255) NOT NULL default '',
  `displayid` mediumint(8) unsigned NOT NULL default '0',
  `Quality` tinyint(3) unsigned NOT NULL default '0',
  `Flags` bigint(20) NOT NULL default '0',
  `FlagsExtra` int(10) unsigned NOT NULL default '0',
  `BuyCount` tinyint(3) unsigned NOT NULL default '1',
  `BuyPrice` bigint(20) NOT NULL default '0',
  `SellPrice` int(10) unsigned NOT NULL default '0',
  `InventoryType` tinyint(3) unsigned NOT NULL default '0',
  `AllowableClass` int(11) NOT NULL default '-1',
  `AllowableRace` int(11) NOT NULL default '-1',
  `ItemLevel` smallint(5) unsigned NOT NULL default '0',
  `RequiredLevel` tinyint(3) unsigned NOT NULL default '0',
  `RequiredSkill` smallint(5) unsigned NOT NULL default '0',
  `RequiredSkillRank` smallint(5) unsigned NOT NULL default '0',
  `requiredspell` mediumint(8) unsigned NOT NULL default '0',
  `requiredhonorrank` mediumint(8) unsigned NOT NULL default '0',
  `RequiredCityRank` mediumint(8) unsigned NOT NULL default '0',
  `RequiredReputationFaction` smallint(5) unsigned NOT NULL default '0',
  `RequiredReputationRank` smallint(5) unsigned NOT NULL default '0',
  `maxcount` int(11) NOT NULL default '0',
  `stackable` int(11) default '1',
  `ContainerSlots` tinyint(3) unsigned NOT NULL default '0',
  `StatsCount` tinyint(3) unsigned NOT NULL default '0',
  `stat_type1` tinyint(3) unsigned NOT NULL default '0',
  `stat_value1` smallint(6) NOT NULL default '0',
  `stat_type2` tinyint(3) unsigned NOT NULL default '0',
  `stat_value2` smallint(6) NOT NULL default '0',
  `stat_type3` tinyint(3) unsigned NOT NULL default '0',
  `stat_value3` smallint(6) NOT NULL default '0',
  `stat_type4` tinyint(3) unsigned NOT NULL default '0',
  `stat_value4` smallint(6) NOT NULL default '0',
  `stat_type5` tinyint(3) unsigned NOT NULL default '0',
  `stat_value5` smallint(6) NOT NULL default '0',
  `stat_type6` tinyint(3) unsigned NOT NULL default '0',
  `stat_value6` smallint(6) NOT NULL default '0',
  `stat_type7` tinyint(3) unsigned NOT NULL default '0',
  `stat_value7` smallint(6) NOT NULL default '0',
  `stat_type8` tinyint(3) unsigned NOT NULL default '0',
  `stat_value8` smallint(6) NOT NULL default '0',
  `stat_type9` tinyint(3) unsigned NOT NULL default '0',
  `stat_value9` smallint(6) NOT NULL default '0',
  `stat_type10` tinyint(3) unsigned NOT NULL default '0',
  `stat_value10` smallint(6) NOT NULL default '0',
  `ScalingStatDistribution` smallint(6) NOT NULL default '0',
  `ScalingStatValue` int(6) unsigned NOT NULL default '0',
  `dmg_min1` float NOT NULL default '0',
  `dmg_max1` float NOT NULL default '0',
  `dmg_type1` tinyint(3) unsigned NOT NULL default '0',
  `dmg_min2` float NOT NULL default '0',
  `dmg_max2` float NOT NULL default '0',
  `dmg_type2` tinyint(3) unsigned NOT NULL default '0',
  `armor` smallint(5) unsigned NOT NULL default '0',
  `holy_res` tinyint(3) unsigned NOT NULL default '0',
  `fire_res` tinyint(3) unsigned NOT NULL default '0',
  `nature_res` tinyint(3) unsigned NOT NULL default '0',
  `frost_res` tinyint(3) unsigned NOT NULL default '0',
  `shadow_res` tinyint(3) unsigned NOT NULL default '0',
  `arcane_res` tinyint(3) unsigned NOT NULL default '0',
  `delay` smallint(5) unsigned NOT NULL default '1000',
  `ammo_type` tinyint(3) unsigned NOT NULL default '0',
  `RangedModRange` float NOT NULL default '0',
  `spellid_1` mediumint(8) NOT NULL default '0',
  `spelltrigger_1` tinyint(3) unsigned NOT NULL default '0',
  `spellcharges_1` smallint(4) default NULL,
  `spellppmRate_1` float NOT NULL default '0',
  `spellcooldown_1` int(11) NOT NULL default '-1',
  `spellcategory_1` smallint(5) unsigned NOT NULL default '0',
  `spellcategorycooldown_1` int(11) NOT NULL default '-1',
  `spellid_2` mediumint(8) NOT NULL default '0',
  `spelltrigger_2` tinyint(3) unsigned NOT NULL default '0',
  `spellcharges_2` smallint(4) default NULL,
  `spellppmRate_2` float NOT NULL default '0',
  `spellcooldown_2` int(11) NOT NULL default '-1',
  `spellcategory_2` smallint(5) unsigned NOT NULL default '0',
  `spellcategorycooldown_2` int(11) NOT NULL default '-1',
  `spellid_3` mediumint(8) NOT NULL default '0',
  `spelltrigger_3` tinyint(3) unsigned NOT NULL default '0',
  `spellcharges_3` smallint(4) default NULL,
  `spellppmRate_3` float NOT NULL default '0',
  `spellcooldown_3` int(11) NOT NULL default '-1',
  `spellcategory_3` smallint(5) unsigned NOT NULL default '0',
  `spellcategorycooldown_3` int(11) NOT NULL default '-1',
  `spellid_4` mediumint(8) NOT NULL default '0',
  `spelltrigger_4` tinyint(3) unsigned NOT NULL default '0',
  `spellcharges_4` smallint(4) default NULL,
  `spellppmRate_4` float NOT NULL default '0',
  `spellcooldown_4` int(11) NOT NULL default '-1',
  `spellcategory_4` smallint(5) unsigned NOT NULL default '0',
  `spellcategorycooldown_4` int(11) NOT NULL default '-1',
  `spellid_5` mediumint(8) NOT NULL default '0',
  `spelltrigger_5` tinyint(3) unsigned NOT NULL default '0',
  `spellcharges_5` smallint(4) default NULL,
  `spellppmRate_5` float NOT NULL default '0',
  `spellcooldown_5` int(11) NOT NULL default '-1',
  `spellcategory_5` smallint(5) unsigned NOT NULL default '0',
  `spellcategorycooldown_5` int(11) NOT NULL default '-1',
  `bonding` tinyint(3) unsigned NOT NULL default '0',
  `description` varchar(255) NOT NULL default '',
  `PageText` mediumint(8) unsigned NOT NULL default '0',
  `LanguageID` tinyint(3) unsigned NOT NULL default '0',
  `PageMaterial` tinyint(3) unsigned NOT NULL default '0',
  `startquest` mediumint(8) unsigned NOT NULL default '0',
  `lockid` mediumint(8) unsigned NOT NULL default '0',
  `Material` tinyint(4) NOT NULL default '0',
  `sheath` tinyint(3) unsigned NOT NULL default '0',
  `RandomProperty` mediumint(8) NOT NULL default '0',
  `RandomSuffix` mediumint(8) unsigned NOT NULL default '0',
  `block` mediumint(8) unsigned NOT NULL default '0',
  `itemset` mediumint(8) unsigned NOT NULL default '0',
  `MaxDurability` smallint(5) unsigned NOT NULL default '0',
  `area` mediumint(8) unsigned NOT NULL default '0',
  `Map` smallint(6) NOT NULL default '0',
  `BagFamily` mediumint(9) NOT NULL default '0',
  `TotemCategory` mediumint(9) NOT NULL default '0',
  `socketColor_1` tinyint(4) NOT NULL default '0',
  `socketContent_1` mediumint(9) NOT NULL default '0',
  `socketColor_2` tinyint(4) NOT NULL default '0',
  `socketContent_2` mediumint(9) NOT NULL default '0',
  `socketColor_3` tinyint(4) NOT NULL default '0',
  `socketContent_3` mediumint(9) NOT NULL default '0',
  `socketBonus` mediumint(9) NOT NULL default '0',
  `GemProperties` mediumint(9) NOT NULL default '0',
  `RequiredDisenchantSkill` smallint(6) NOT NULL default '-1',
  `ArmorDamageModifier` float NOT NULL default '0',
  `Duration` int(11) NOT NULL default '0' COMMENT 'Duration in seconds. Negative value means realtime, postive value ingame time',
  `ItemLimitCategory` smallint(6) NOT NULL default '0',
  `HolidayId` int(11) unsigned NOT NULL default '0',
  `ScriptName` varchar(64) NOT NULL default '',
  `DisenchantID` mediumint(8) unsigned NOT NULL default '0',
  `FoodType` tinyint(3) unsigned NOT NULL default '0',
  `minMoneyLoot` int(10) unsigned NOT NULL default '0',
  `maxMoneyLoot` int(10) unsigned NOT NULL default '0',
  `WDBVerified` smallint(5) default '1',
  PRIMARY KEY  (`entry`),
  KEY `idx_name` (`name`),
  KEY `items_index` (`class`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item System';

Нужно сделать следующее:
Все данные из таблицы item_template где Столбцы: ItemLevel <=238  и  class = 4  и  subclass = 3
поместить в  таблицу npc_vendor
при этом столбец 'entry' в item_template равен столбцу  'item' в  npc_vendor
остальные стобцы в npc_vendor такие как 'entry' 'slot' 'maxcount' 'incrtime' 'ExtendedSost'  оставить по умолчанию, тоисть = 0

Неактивен

 

#2 26.10.2010 16:57:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выбор нужных элементов из первой таблицы и перенос их во вторую

INSERT INTO npc_vendor (список полей вендора)
SELECT список полей шаблона FROM item_template
WHERE ItemLevel <=238  AND  class = 4  AND  subclass = 3

В списках поля нужно перечислять через запятую.

Неактивен

 

#3 26.10.2010 17:41:36

blade.kr
Участник
Зарегистрирован: 26.10.2010
Сообщений: 4

Re: Выбор нужных элементов из первой таблицы и перенос их во вторую

INSERT INTO npc_vendor (список полей вендора)
SELECT список полей шаблона FROM item_template
WHERE ItemLevel <=238  AND  class = 4  AND  subclass = 3

в списке полей вендора нужно перечислить все имеющиеся поля, а в  списках полей шаблона нужно перечислить те которые меня интерисуют для переноса?

Неактивен

 

#4 26.10.2010 17:52:12

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выбор нужных элементов из первой таблицы и перенос их во вторую

blade.kr написал:

в списке полей вендора нужно перечислить все имеющиеся поля

нет, такие как 'entry' 'slot' 'maxcount' 'incrtime' 'ExtendedSost',  оставляемые по умолчанию, перечислять не надо

blade.kr написал:

а в  списках полей шаблона нужно перечислить те которые меня интерисуют для переноса?

да

Неактивен

 

#5 26.10.2010 18:17:59

blade.kr
Участник
Зарегистрирован: 26.10.2010
Сообщений: 4

Re: Выбор нужных элементов из первой таблицы и перенос их во вторую

Если чесно немного запутался, но все мы сдесь для того чтобы учится ...

По моим предположением, это выглядит вот так:

INSERT INTO npc_vendor (entry, item)
SELECT entry, ItemLevel FROM item_template
WHERE ItemLevel <= 238  AND  class = 4  AND  subclass = 3;

?!

Неактивен

 

#6 26.10.2010 18:27:20

blade.kr
Участник
Зарегистрирован: 26.10.2010
Сообщений: 4

Re: Выбор нужных элементов из первой таблицы и перенос их во вторую

От я идиот(не мат) ... всё, спасибо большое тому  кто  помог мне разобратся в этом ...
Запрос должен выглядеть следующим образом

Код:

INSERT INTO npc_vendor (item)
SELECT entry FROM item_template
WHERE ItemLevel <=238 AND  class = 4  AND  subclass = 3;

Запрос работает... Еще раз огромное всем спасибо

Отредактированно blade.kr (26.10.2010 18:27:40)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson