0

我正在尝试使用插入到其他列的数据已经存在的列中,但数据没有与其他列相邻填充,而是在表中的所有数据之后插入数据。例如:

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

有什么解决方法吗?提前致谢 :)

第2步:

从tab1中选择*;

ID 名称 Id2

1 国王 NA

2 皇后乐队

3 Rook NA

从tab2中选择*;

ID 

1  

2  

3  

4

5

6

我想要输出数据如下:

tab2 中的 ID 数据应填充到与 TAB1.ID 列值匹配的 tab1 列 (ID2) 中,如下所示:

Id Name ID2
1  King   1
2  Queen  2
3  Rook   3

您能对此提出任何疑问吗?

4

2 回答 2

1

所以你想用来自 tab2 的相应姓氏来更新 tab1 中的行?

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

UPDATE tab1
SET tab1.Last_name = tab2.LastName_Name
FROM tab1
    JOIN tab2 ON tab1.Id = tab2.Id
于 2013-05-09T09:46:26.177 回答
1

你不需要INSERT你需要一个UPDATE声明:

UPDATE tab1 SET tab1.Last_name = tab2.LastName_Name
FROM tab1 INNER JOIN tab2 ON tab1.Id = tab2.Id
于 2013-05-09T09:47:31.293 回答