【发布时间】:2012-12-29 12:20:25
【问题描述】:
我正在尝试将一个表中的不同值插入到另一个表中。我的目标表有一个主键studentid,当我从源到目标执行不同的id 时,加载成功。当我尝试将一堆列从源加载到目标时,包括student_id,我收到一个错误违反了唯一约束。目标上只有一个约束,即studentid 上的主键。
我的查询看起来像这样(只是一个例子)
insert into target(studentid, age, schoolyear)
select distinct id, age, 2012 from source
为什么上面的查询返回一个错误,而下面的查询工作得很好
insert into target(studentid)
select distinct id from source
帮我解决这个问题。
感谢您的宝贵时间。
【问题讨论】:
-
您需要决定哪些行用于多个
id,正如下面第一个答案中所指出的,其他列是not 不同的。您将需要执行一些聚合MIN(),MAX()等。 -
感谢您的回复。我明白这个问题。我想要 id 的唯一值和其余列的相应值。我怎样才能做到这一点。 ?