我正在尝试在其中已存在其他列的数据的列中使用插入,但数据不会填充到其他列的附近,而是在表中的所有数据之后插入数据。 例如:
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 ID Id2
1 King NA
2 Queen NA
3 Rook NA
从tab2中选择*;
ID
1
2
3
4
5
6
我想要输出数据如下:
tab2中的ID数据应填充在tab1列(ID2)中,该列与TAB1.ID列值匹配,如下所示:
Id Name ID2
1 King 1
2 Queen 2
3 Rook 3
您能否提供任何疑问?
答案 0 :(得分:1)
所以你想用tab2中的相应姓氏来更新tab1中的行?
在这种情况下,请使用UPDATE语句而不是INSERT:
UPDATE tab1
SET tab1.Last_name = tab2.LastName_Name
FROM tab1
JOIN tab2 ON tab1.Id = tab2.Id
答案 1 :(得分:1)
您不需要INSERT
您需要UPDATE
声明:
UPDATE tab1 SET tab1.Last_name = tab2.LastName_Name
FROM tab1 INNER JOIN tab2 ON tab1.Id = tab2.Id