RSS
热门关键字:  php  lighttpd  找回密码  密码找回  client
当前位置 :| 主页>技术资料>MySQL>

INSERT中的DISTINCT合并子查询

来源: 作者: 时间:2008-09-09 Tag:insert   distinct   点击:

最近做一个WEBGAME项目时,前期为了描述方便,把一些资料存入了MYSQL,以便以后进行拆解重新组织,临时表如下:

//部队兵种属性临时表
CREATE TABLE `data_soldierattrib` (
  `SoldierId` int(10) unsigned NOT NULL default '0' COMMENT '等同于productlist中的productId',
  `兵种名称` varchar(45) default NULL,
  `攻击` int(10) unsigned NOT NULL,
  `枪防` int(10) unsigned NOT NULL,
  `步防` int(10) unsigned NOT NULL,
  `骑防` int(10) unsigned NOT NULL,
  `需要地元素` int(10) unsigned NOT NULL,
  `需要风元素` int(10) unsigned NOT NULL,
  `需要火元素` int(10) unsigned NOT NULL,
  `需要水元素` int(10) unsigned NOT NULL,
  `日消耗水元素` int(10) unsigned NOT NULL,
  `移动速度` int(10) unsigned NOT NULL,
  `负载量` int(10) unsigned NOT NULL,
  `训练时间` int(10) unsigned NOT NULL,
  `兵种类型` varchar(45) NOT NULL,
  `兵种类型的等级` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`SoldierId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='部队兵种属性';

由于项目开发进度需要,现在需要从中拆出一个兵种类型表,需要从上面的临时表中提取兵种类型,建表如下:

CREATE TABLE `soldiergroup` (
  `SoldierGroupId` int(10) unsigned NOT NULL auto_increment COMMENT '兵种的分类ID',
  `SoldierGroupName` varchar(45) NOT NULL COMMENT '兵种分类名称',
  PRIMARY KEY  (`SoldierGroupId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='兵种类型';

尝试了几种写法,如:

INSERT INTO soldiergroup (SoldierGoupName) VALUES( SELECT DISTINCT `兵种类型`  FROM data_soldierattrib);
......

却老提示错误,上网查了一下资料,重新写了以下语句:

INSERT INTO soldiergroup (`SoldierGroupName`) SELECT DISTINCT `兵种类型`  FROM data_soldierattrib;

顺利通过,看来不能主观意识太强了呀,得再恶补SQL知识了,以后曾经在单位里号称SQL王子的...


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册