我正在尝试使用其他表和常量中的值进行插入。我在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
答案 0 :(得分:0)
非常不清楚你说的是什么,但如果你想要全部或使用JOIN
,请使用UNIONINSERT 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