从多个表(join?)和常量中插入select

时间:2014-03-04 13:39:34

标签: sql-server select join insert

我正在尝试使用其他表和常量中的值进行插入。我在SO上找到了部分答案,但我无法完成存储过程。我应该做像

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

但我必须使用某种联接从第3张表中获取数据,我不知道如何。

我有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

table2看起来像:

FunctionID           int
FunctionDescription  varchar

table3看起来像:

TypeID               int
TypeDescription      varchar

2 个答案:

答案 0 :(得分:0)

非常不清楚你说的是什么,但如果你想要全部或使用JOIN

,请使用UNION
INSERT INTO table1
SELECT *
FROM table2 
UNION
SELECT * FROM table3

答案 1 :(得分:0)

我设法找到了答案。如果其他人正在寻找它:

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