日期:2014-05-18  浏览次数:20803 次

怎样用sql语句实现,如下的表中插入功能
table1
姓名 年级 专业 体重 身高 序号
刘德华 2 数控 65 175 1
周杰伦 1 音乐 55 172 2
刘涛 1 表演 46 165 3
王心玲 2 音乐 45 160 4



table2
姓名 年级 专业 体重 身高 序号
刘德华 2 数控 65 175 1
周杰伦 3 广告涉及 55 172 2
盖茨 4 计算机 56 180 3
----------------------
其中姓名和年级为合成主键,怎样用sql 实现在table1 中插入 table2的记录,得到如下结果,只插入table1中不重复的记录


table1
姓名 年级 专业 体重 身高 序号
刘德华 2 数控 65 175 1
周杰伦 1 音乐 55 172 2
周杰伦 3 广告涉及 55 172 2
刘涛 1 表演 46 165 3
王心玲 2 音乐 45 160 4
盖茨 4 计算机 56 180 3

------解决方案--------------------
不一致的结果集合:

INSERT INTO table1 (
select src.* from table2 src where (src.姓名 + src.年级) not in (select dest.姓名 + dest.年级 from table1 dest)



语法上可能有错误,自己调整。
------解决方案--------------------
SQL code

INSERT INTO table1 
( 
  select 姓名 ,    年级   , 专业  ,   体重  ,  身高  ,序号 
  from  Table2
except
  select 姓名  ,   年级 ,   专业  ,   体重  ,  身高 , 序号 
  from Table1
)