【发布时间】:2013-08-19 07:09:27
【问题描述】:
我有两张桌子,一张promotion table 和一张prize table。
CREATE TABLE PRIZE(
PRIZEID INT NOT NULL PRIMARY KEY,
COST DOUBLE NOT NULL,
PRIZENAME VARCHAR(100) NOT NULL,
)
CREATE TABLE PROMOTION (
PROMOTIONID INTEGER NOT NULL,
LEVEL INTEGER NOT NULL,
AMOUNT NOT NULL,
COST DOUBLE NOT NULL DEFAULT 0,
PRIZENAME VARCHAR(100) NOT NULL DEFAULT ' ',
PRIZEID INTEGER
)
prize table 当前为空,我想将记录从promotion table 复制到prize table。在这样做时,我只想选择那些在两列中具有唯一值的记录,prizename 和cost。之后我将从promotion 删除这些列。
现在我有下面的sql语句
INSERT INTO prize(PRIZEID, COST, PRIZENAME)
SELECT r.PRIZEID, r.COST, r.PRIZENAME
FROM PROMOTION r;
但这会将所有记录插入prize table。我意识到我可以在 select 中使用 distinct 关键字来选择 cost 和 prizename 的唯一实例,但在我的情况下,prizeid 将始终是唯一的,因为 distinct 关键字适用于 select 子句中的所有列没用。
提前致谢!
【问题讨论】:
-
为什么奖品有多个奖品ID?
-
推广表有重复奖品。这是一个预先存在的表,我正在尝试将奖品信息与促销信息分开,然后通过主键-外键关系将这两个表关联起来。
标签: sql select insert db2 distinct