2012-11-14 98 views
1

This答案接近我需要的,但我的情況稍有不同。我有一個SQL表看起來像這樣。克隆記錄在同一張表

+------+----------+-----------+ 
| aid | afname | alname | 
+------+----------+-----------+ 
| 01 | John | Doe  | 
| 02 | Stephen | Williams | 
| 03 | Jane | Doe  | 
| 04 | Peter | Brown | 
| 05 |   |   | 
+------+----------+-----------+ 

現在我需要克隆/只複製afnamealname從具有 aid行字段,並將其與aid 插入一行。

這是我試過的查詢,但它會引發語法錯誤。

INSERT INTO table1(afname, alname) 
WHERE aid = '05' 
SELECT afname, alname 
FROM table1 
WHERE aid = '02' 

任何人都可以請告訴我一種方法來實現這個目標嗎?

非常感謝。

回答

3

如果你沒有一排aid = '05':

INSERT INTO table1(aid,afname, alname) 
SELECT '05', afname, alname 
FROM table1 
WHERE aid = '02' 

如果你有aid = '05' 行,你想更新:

update t2 
set t2.afname = t1.afname, t2.alname = t1.alname 
from table1 t1 join table1 t2 on t1.aid = '02' and t2.aid = '05' 
+0

第二種方法是我所需要的。非常感謝Grisha :) – Isuru

+0

不客氣。 –