MS SQL插入选择连接

时间:2017-07-20 07:07:44

标签: sql sql-server tsql

我有两张桌子

    TABLE1                        TABLE2
COLUMN1 COLUMN2               COLUMN1 COLUMN2
John      56                     56      A
Bob       45                     45      B 
Eva       68                     68      C

我需要在一个表中添加列,事实上我将使用函数join从其他表插入新列值

        TABLE1
COLUMN1 COLUMN2 COLUMN3
John      56      A
Bob       45      B 
Eva       68      C

ALTER TABLE [dbo].[Table1]
ADD Column3 nvarchar(255); 

INSERT INTO [dbo].[Table1] (column3)
SELECT table2.column2
from [dbo].[Table2] left join [dbo].[table1]
on table1.column2 = table2.column1

但我得到了

        TABLE1
COLUMN1 COLUMN2 COLUMN3
John     56       A
Bob      45       B 
Eva      68       C
NULL     NULL     A
NULL     NULL     B
NULL     NULL     C

你能帮我修理插页吗?

5 个答案:

答案 0 :(得分:5)

你真的需要更新表格设置栏3

UPDATE t1 
SET column3 = t2.column2
FROM [dbo].[Table1] t1
JOIN [dbo].[table2] t2 ON t1.column2 = t2.column1

答案 1 :(得分:0)

你必须使用INNER JOIN:

INNER JOIN Table1 ON Table1.Column2 = Table1.Column1

答案 2 :(得分:0)

尝试撰写inner join而不是left join

答案 3 :(得分:0)

在INSERT INTO中将JOIN从LEFT更改为INNER,并加入table1.column1而不是table1.column2

INSERT INTO [dbo].[Table1] (column3)
SELECT table2.column2
from [dbo].[Table2] 
INNER JOIN [dbo].[table1]
on table1.column1 = table2.column1

答案 4 :(得分:0)

您要做的是UPDATE表。为简单起见,第一个表中的列是column1等等,第二个col1中的列等等。那么您只需要简单的update语句。

UPDATE Table1 SET column3 = col2
              WHERE column2 = col1