我有兩個表,一個promotion table
和一個prize table
。SQL將行插入表中必須有2個不同的列,但也有一個不同的列
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? – weenoid
促銷表中有重複的獎品。這是一個預先存在的表格,我試圖將促銷信息中的獎品信息分開,然後通過主鍵 - 外鍵關聯將這兩個表關聯起來。 – Mike