2014-03-04 40 views
0

我正在嘗試使用其他表和常量中的值進行插入。我已經找到了部分答案,但我無法完成存儲過程。我應該像插入從多個表(連接?)和常量中選擇

INSERT INTO table1(value1, value2, value3, value4) 
SELECT 
    @value1, 
    value2, 
    value3, 
    @value4 
FROM table2 WHERE table2.id = @value2; -- not sure 

但我必須使用某種連接從第三表中獲取數據以及我不知道如何。

我有3張桌子。 我想插入這樣

INSERT INTO table1(field1, field2, field3, field4) 

至於值

field1 = @field1 
SELECT field2_type FROM table2 WHERE field2ID = @field2 -- field2 
SELECT field3_type FROM table3 WHERE field3ID = @field3 -- field3 
field4 = @field4 

我使用SQL Server 2012的

table1的樣子:

ID  int, PK 
Name  varchar 
Function int 
Type  int 
Age  int 

表2的樣子:

FunctionID   int 
FunctionDescription varchar 

表3的樣子:

TypeID    int 
TypeDescription  varchar 

回答

0

我設法找到了答案使用UNION。如果有人正在尋找它:

INSERT INTO table1(field1, field2, field3, field4) 
select 
field1 = @field1, 
field2= (SELECT TOP 1 field2_type FROM table2 WHERE field2ID = @field2 order by (select NULL)), 
field3 = (SELECT TOP 1 field3_type FROM table3 WHERE field3ID = @field3 order by (select NULL)), 
field4 = @field4 
0

非常不清楚你在說什麼,但如果你想獲得所有或使用JOIN

INSERT INTO table1 
SELECT * 
FROM table2 
UNION 
SELECT * FROM table3 
+0

我更新了這個問題,我希望現在更清楚。 – Doru