2011-06-07 112 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

相关问题