2013-05-09 36 views
0

我想將插入操作用於其他列的數據已經存在的列中,但數據不是與其他列相鄰,而是插入數據畢竟表中的數據。 例如:在SQL語句中執行插入操作導致其他列爲空

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步:

select * from tab1;

ID名稱的Id2

1特大NA

2張大NA

3魯克NA

SELECT * FROM TAB2;

ID 

1 

2 

3 

4 

5 

6 

欲如下所述輸出數據:

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

在TAB2的ID數據在TAB1列其與TAB1.ID列值如下匹配(ID2)應該填充

你能提供任何查詢嗎?

+0

非常感謝你非常爲你解答幫助了我,以及如果我想要做以下事情: select * from tab1; ID名稱TAB2_ID 1特大 2張大 3魯克 了Exa: SELECT * FROM TAB2; 標識 OUTPUT: ID名稱TAB2_ID 1金1 2張大2 3魯克3 – user1620464 2013-05-09 10:01:07

+0

這是很難當進一步的問題是添加註釋閱讀。格式確實可以幫助我們幫助你,因爲這是一個不同的問題,所以最好的辦法是關閉這個(接受爲你解決最初問題的答案),然後開一個新的問題。 – AdaTheDev 2013-05-09 11:15:50

回答

1

所以,你想要更新tab1中的行與來自tab2的相應的姓氏?

在這種情況下,使用UPDATE語句而不是一個INSERT:

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

非常感謝您回答以及如果我想要做到以下幾點: select * from tab1; ID名稱TAB2_ID 1特大 2張大 3魯克 了Exa: SELECT * FROM TAB2; 標識 OUTPUT: ID名稱TAB2_ID 1特大1 2張大2 3魯克3 – user1620464 2013-05-09 09:56:45

+0

@AdaTheDev 非常感謝你您接聽又該我查詢如果想要做到以下幾點:select * from tab1; ID NAme TAB2_ID 1 King 2 Queen 3 Rook select * from tab2; 標識 OUTPUT: ID名稱TAB2_ID 1特大1 2張大2 3魯克3 – user1620464 2013-05-09 10:28:07

1

你並不需要一個INSERT你需要一個UPDATE聲明:

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

我要插入TAB2.ID INTO THE TAB1.TAB2_ID(列)FROM TAB2.ID 的出放應該是: ID名稱TAB2_ID 1金1 2張大2 3魯克3 請幫助 – user1620464 2013-05-09 10:05:32

+0

當我使用更新語句它與這一步讓太多的行retireved – user1620464 2013-05-09 10:10:34

+0

更新你原來的問題,使它更清晰 – Chris 2013-05-09 11:16:17