2012-11-14 6 views
1

This 답변이 제게 필요한 곳에 다가 왔지만 상황이 약간 다릅니다. 나는 이런 식의 SQL 테이블을 가지고있다.동일한 테이블의 레코드를 복제하십시오.

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

는 지금은 02aid있는 행에서/사본만을 afnamealname 필드를 복제하고 aid05와 행에 삽입해야합니다.

이 쿼리는 시도했지만 구문 오류가 발생합니다.

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

당신은 오신 것을 환영합니다. –

관련 문제