2017-07-20 98 views
0

我有兩個表MS SQL INSERT INTO選擇加入

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

我需要添加列與事實,我會使用插入新列值從其它表中的一個表函數加入

 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 

你能幫我解決我的插入?

回答

0

你必須使用INNER JOIN:

INNER JOIN Table1 ON Table1.Column2 = Table1.Column1 
0

試着寫inner join代替left join

0

在INSERT INTO變化由左到INNER JOIN,和table1.column1而不是table1.column2加入

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

真的是你需要更新表設置欄3

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

你試圖做的是UPDATE表。爲了簡單起見:在第一個表中的列被納入column1等,並在第二個col1等,然後你只需要簡單的update聲明。

UPDATE Table1 SET column3 = col2 
       WHERE column2 = col1