T-SQL INSERT INTO 与 LEFT JOIN
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/23808216/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
T-SQL INSERT INTO with LEFT JOIN
提问by user1054844
Sorry this is a syntax question, but in T-SQL how do I specify in INSERT statement in which DB I want to INSERT and in LEFT JOIN from which DB I want to join?
抱歉,这是一个语法问题,但在 T-SQL 中,我如何在 INSERT 语句中指定我想要插入的数据库以及我想要加入的 LEFT JOIN 中的数据库?
if not exists (select * from [DB_A].[dbo.a_test])
create table [DB_A].[dbo.a_test] (
a int(10) ,
b int(10) ,
c varchar(200) ,
d varchar(200) ,
e varchar(200) ,
PRIMARY KEY (a)
)
INSERT INTO [DB_A].[dbo.a_test] (a,b,c, d)
VALUES dbo.products.product_info, dbo.products.product_date, dbo.products.smth, *dbo.program.program_name*, dbo.program.program_smth
FROM [DB_B].dbo.products
LEFT JOIN [DB_B].dbo.program
ON dbo.program.program_name = dbo.products.product_info
Sorry for such a noob question, but I could not find a suitable example.
很抱歉提出这样的菜鸟问题,但我找不到合适的示例。
回答by Gordon Linoff
You want insert into . . . select
:
你想要insert into . . . select
:
INSERT INTO [DB_A].[dbo.a_test](a,b,c,d,e) --ADDED A COLUMN
select p.product_info, p.product_date, p.smth, pr.program_name, pr.program_smth
FROM [DB_B].dbo.products p LEFT JOIN
[DB_B].dbo.program pr
ON p.program_name = pr.product_info;
I also fixed the query to use table aliases, so it is much easier to read.
我还修复了查询以使用表别名,因此更易于阅读。
回答by Jerrad
INSERT INTO [DB_A].[dbo.a_test] (a,b,c, d)
SELECT dbo.products.product_info, dbo.products.product_date, dbo.products.smth, dbo.program.program_smth
FROM [DB_B].dbo.products
LEFT JOIN [DB_B].dbo.program
ON dbo.program.program_name = dbo.products.product_info