Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 插入到从多个表(联接?)和常量中选择_Sql Server_Select_Join_Insert - Fatal编程技术网

Sql server 插入到从多个表(联接?)和常量中选择

Sql server 插入到从多个表(联接?)和常量中选择,sql-server,select,join,insert,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 但我也必须使用某种联接从第三个表中获取数据,我不知道如何进行 我有

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

INSERT INTO table1(value1, value2, value3, value4)
SELECT 
    @value1,
    value2,
    value3,
    @value4 
FROM table2 WHERE table2.id = @value2; -- not sure
但我也必须使用某种联接从第三个表中获取数据,我不知道如何进行

我有三张桌子。 我想这样插入

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

表1如下所示:

ID       int, PK
Name     varchar
Function int
Type     int
Age      int
FunctionID           int
FunctionDescription  varchar
TypeID               int
TypeDescription      varchar
表2看起来像:

ID       int, PK
Name     varchar
Function int
Type     int
Age      int
FunctionID           int
FunctionDescription  varchar
TypeID               int
TypeDescription      varchar
表3如下所示:

ID       int, PK
Name     varchar
Function int
Type     int
Age      int
FunctionID           int
FunctionDescription  varchar
TypeID               int
TypeDescription      varchar

非常不清楚你说了什么,但如果你想得到全部或使用加入,请使用UNION

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

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

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