在SQL中执行Insert into语句,导致其他列为空

在SQL中执行Insert into语句,导致其他列为空,sql,tsql,sql-server-2008-r2,Sql,Tsql,Sql Server 2008 R2,我试图在其他列的数据已经存在的列中使用insert,但是数据不是在其他列的附近填充的,而是在表中的所有数据之后插入数据。 例如: select * from tab1; ID NAme Last_name 1 King 2 Queen 3 Rook select * from tab2; Id LastName_Name 1 Abc 2 def 3 xyz SQL

我试图在其他列的数据已经存在的列中使用insert,但是数据不是在其他列的附近填充的,而是在表中的所有数据之后插入数据。 例如:

select * from tab1;       
ID NAme Last_name          
1  King                     
2  Queen                   
3  Rook 

select * from tab2;
Id LastName_Name
1  Abc 
2  def
3  xyz

SQL : Insert into tab1 (Last_name)
select tab2.LastName_Name from tab1,tab2, where tab1.Id=tab2.Id

Output:
Id Name Last_Name
1  King   NULL
2  Queen  NULL
3  Rook   NULL
4  NULL   Abc
5  NULL   def
6  NULL   xyz
但我需要以下数据:

Id Name Last_Name
1  King   Abc
2  Queen  def
3  Rook   xyz
Id Name ID2
1  King   1
2  Queen  2
3  Rook   3
有什么办法吗?提前感谢:)

步骤2:

从选项卡1中选择*

ID名称Id2

1金娜

女王2号

3鲁克纳

从tab2中选择*

ID 

1  

2  

3  

4

5

6
我希望输出数据如下所示:

Id Name Last_Name
1  King   Abc
2  Queen  def
3  Rook   xyz
Id Name ID2
1  King   1
2  Queen  2
3  Rook   3
tab2中的ID数据应填充在与tab1.ID列值匹配的tab1列(ID2)中,如下所示:

Id Name Last_Name
1  King   Abc
2  Queen  def
3  Rook   xyz
Id Name ID2
1  King   1
2  Queen  2
3  Rook   3

您能提供任何查询吗?

所以您想用tab2中相应的姓氏更新tab1中的行

在这种情况下,请使用UPDATE语句而不是INSERT语句:

UPDATE tab1
SET tab1.Last_name = tab2.LastName_Name
FROM tab1
    JOIN tab2 ON tab1.Id = tab2.Id

您不需要
插入
您需要
更新
语句:

UPDATE tab1 SET tab1.Last_name = tab2.LastName_Name
FROM tab1 INNER JOIN tab2 ON tab1.Id = tab2.Id

非常感谢您的回答,如果要执行以下操作,我应该查询什么:从表1中选择*;ID名称选项卡2\u ID 1国王2王后3车Exa:从选项卡2中选择*;Id 1 2 3输出:Id名称选项卡2_Id 1国王1 2王后2 3车3@AdaTheDev非常感谢您的回答,如果要执行以下操作,我应该查询什么:从表1中选择*;ID名称选项卡2\u ID 1国王2王后3车从选项卡2中选择*;Id 1 2 3输出:Id NAme TAB2_Id 1 King 1 2 Queen 2 3 Rook 3非常感谢您的回答帮助了我,如果要执行以下操作,我应该查询什么:从tab1中选择*;ID名称选项卡2\u ID 1国王2王后3车Exa:从选项卡2中选择*;Id 1 2 3输出:Id名称选项卡2_Id 1国王1 2王后2 3车3当进一步的问题添加为注释时,很难阅读。格式化确实有助于我们帮助您,因为这是一个不同的问题,所以最好关闭此问题(接受为您解决初始问题的答案),然后打开一个新问题。我想将TAB2.ID插入TAB1.TAB2_ID(列)从TAB2.ID开始,输出应该是:ID NAME TAB2_ID 1 King 1 2 Queen 2 3 Rook 3请帮助当我使用更新语句时,它给出的行数太多了,请使用下一步更新您的原始问题以使其更清楚@@AdaTheDev Hey查询已运行更新系统,我需要保留ltrim(ID)使我的结果生效,因为我的表中的Id列以“空格”开头。。非常感谢你