Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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/7/sql-server/21.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
MS SQL插入到选择联接中_Sql_Sql Server_Tsql - Fatal编程技术网

MS SQL插入到选择联接中

MS SQL插入到选择联接中,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有两张桌子 TABLE1 TABLE2 COLUMN1 COLUMN2 COLUMN1 COLUMN2 John 56 56 A Bob 45 45 B Eva 68 68 C 我需要将列添加到一个表中,事实上我将使用函数joi

我有两张桌子

    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

您能帮我修复我的插件吗?

您必须使用内部联接:

INNER JOIN Table1 ON Table1.Column2 = Table1.Column1

必须使用内部联接:

INNER JOIN Table1 ON Table1.Column2 = Table1.Column1

尝试写入
内部联接
而不是
左侧联接

尝试写入
内部联接
而不是插入中的
左侧联接

将联接从左侧更改为内部,并在表1.column1而不是表1.column2上联接

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

在INSERT INTO中,将联接从左改为内,并在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列

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

确实,您需要更新表设置第3列

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

您要做的是更新表。为简单起见:第一个表中的列是numed
column1
等,第二个表中的列是col1
等。然后您只需要简单的
update
语句

UPDATE Table1 SET column3 = col2
              WHERE column2 = col1

您要做的是更新表。为简单起见:第一个表中的列是numed
column1
等,第二个表中的列是col1
等。然后您只需要简单的
update
语句

UPDATE Table1 SET column3 = col2
              WHERE column2 = col1