2011-06-07 113 views
0

考慮結果集從一個表添加行用於每個ID的結果集

SELECT UNIQUE order_id FROM order_details WHERE date=2011-01-01 

(該PK被ORDER_ID和ITEM_ID在一起。)

對於該結果集中的每個ORDER_ID ,我想附加一個禮物(它有一個item_id = 1000027)到該id - 這意味着我希望在order_details表中爲此result_set中的每個order_id添加一行(因爲當天的每個訂單都會得到一份禮物)。我將爲每個插入的行'硬編碼'1000027。

+0

你正在使用哪些DBMS? SQL Server支持SELECT DISTINCT,但不支持SELECT UNIQUE – sqlvogel 2011-06-07 21:38:04

回答

1

像這樣的事情應該做的伎倆。請注意我在你的專欄上做了一些假設。我不知道表中還有其他的列,但我很確定order_id,item_id和date是必需的。

INSERT INTO order_details (order_id, item_id, date) 
SELECT UNIQUE 
    order_id, 
    1000027, 
    getDate() 
FROM order_details 
WHERE date = '01/01/2011' 
    AND item_id <> 1000027 
+1

可能需要添加'AND item_id <> 1000027'以避免違反PK約束。 – orangepips 2011-06-07 18:15:16

+0

@orangepips很棒! – 2011-06-07 18:16:56

相關問題