我有一個select查詢返回一些ID。如何使用基於另一個select語句的循環插入表
SELECT GROUP_ID FROM GROUP_REQUEST_MAPPING WHERE REQUEST_TYPE_ID = 1
因此我得到了這個。
GROUP_ID
6
7
8
9
14
我必須遍歷這些ID,然後在另一個表中插入那麼多行。
INSERT INTO REQ_TASK VALUES(_,_,_,IDs)
我該怎麼做。我是新來的sql。感謝
我有一個select查詢返回一些ID。如何使用基於另一個select語句的循環插入表
SELECT GROUP_ID FROM GROUP_REQUEST_MAPPING WHERE REQUEST_TYPE_ID = 1
因此我得到了這個。
GROUP_ID
6
7
8
9
14
我必須遍歷這些ID,然後在另一個表中插入那麼多行。
INSERT INTO REQ_TASK VALUES(_,_,_,IDs)
我該怎麼做。我是新來的sql。感謝
直接使用常數或參數與選擇象下面這樣:
INSERT INTO REQ_TASK VALUES(_,_,_,IDs)
SELECT @param1,@param2,'xyz', GROUP_ID FROM GROUP_REQUEST_MAPPING WHERE REQUEST_TYPE_ID = 1
這裏是一個小例子
Create table #food
(item varchar(50))
insert into #food values
('icecream'),
('sandwich'),
('Pasta'),
('FrenchFries'),
('Toast')
--create另一個表#food_test
Create table #food_test
(item varchar(50),quantity int)
Insert into #food_test(item,quantity)
select item,10 from #food
現在檢查#food_test中的值
select * from #food_test
這個插入語句是否會在REQ_TASK表中創建5行? –
是的,如果SELECT GROUP_ID FROM GROUP_REQUEST_MAPPING WHERE REQUEST_TYPE_ID = 1返回5行,那麼 – Kapil
您可以使用:
INSERT INTO REQ_TASK (col1, ...)
SELECT GROUP_ID FROM GROUP_REQUEST_MAPPING
WHERE REQUEST_TYPE_ID = 1;
您可以直接使用您的查詢在其他表中插入通過插入到語句
USE MASTER
Create table GROUP_REQUEST_MAPPING
(GROUP_ID int, REQUEST_TYPE_ID int)
insert into GROUP_REQUEST_MAPPING values
(6,1),
(7,1),
(8,1),
(9,1),
(10,1)
Create table REQ_TASK (AMOUNT int, IDs int)
SELECT * FROM GROUP_REQUEST_MAPPING
SELECT * FROM REQ_TASK
INSERT INTO REQ_TASK (AMOUNT,IDs)
SELECT 10, GROUP_ID FROM GROUP_REQUEST_MAPPING WHERE REQUEST_TYPE_ID = 1
SELECT * FROM REQ_TASK
DROP TABLE REQ_TASK
DROP TABLE GROUP_REQUEST_MAPPING
你想這樣做在SQL或從應用程序?你打算如何獲得REQ_TASK表的其他列的值?它們對所有的groupids都是靜態的嗎? –
在我的存儲過程中。 –
@Chetan Ranpariya我正在根據存儲過程的輸入參數獲取其他列值。 –