반응형
같은 테이블의 다른 행의 데이터로 행 업데이트
이렇게 생긴 테이블이 있는데
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
'Test2' 및 'Test' 값을 'NAME'이 같은 'VALUE' 열의 다른 행 데이터로 업데이트하는 방법을 찾고 있습니다(ID는 여기서 고유하지 않으며 ID와 NAME의 복합 키가 행을 고유하게 만듭니다).예를 들어, 다음과 같은 출력이 필요합니다.
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
다른 테이블에 있으면 괜찮겠지만, 같은 NAME 값으로 현재 테이블 내의 다른 행을 참조할 수 있을지 고민입니다.
갱신하다
manji 쿼리를 수정한 후 작업 솔루션에 사용한 쿼리는 다음과 같습니다.모두 감사합니다!
UPDATE data_table dt1, data_table dt2
SET dt1.VALUE = dt2.VALUE
WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
이것을 시험해 보세요.
UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
FROM data_table
WHERE VALUE IS NOT NULL AND VALUE != '') t1
SET t.VALUE = t1.VALUE
WHERE t.ID = t1.ID
AND t.NAME = t1.NAME
제 차례입니다.
UPDATE test as t1
INNER JOIN test as t2 ON
t1.NAME = t2.NAME AND
t2.value IS NOT NULL
SET t1.VALUE = t2.VALUE;
편집: 불필요한 부분을 제거했습니다.t1.id != t2.id
조건.
Update MyTable
Set Value = (
Select Min( T2.Value )
From MyTable As T2
Where T2.Id <> MyTable.Id
And T2.Name = MyTable.Name
)
Where ( Value Is Null Or Value = '' )
And Exists (
Select 1
From MyTable As T3
Where T3.Id <> MyTable.Id
And T3.Name = MyTable.Name
)
UPDATE financialyear
SET firstsemfrom = dt2.firstsemfrom,
firstsemto = dt2.firstsemto,
secondsemfrom = dt2.secondsemfrom,
secondsemto = dt2.secondsemto
from financialyear dt2
WHERE financialyear.financialyearkey = 141
AND dt2.financialyearkey = 140
UPDATE t SET t.VALUE = t1.VALUE
FROM data_table t,
(
SELECT DISTINCT ID, NAME, VALUE
FROM data_table
WHERE VALUE IS NOT NULL AND VALUE != ''
) t1
WHERE t.ID = t1.ID
AND t.NAME = t1.NAME
다른 행의 데이터를 사용하여 새 행을 삽입해야 하는 경우
insert into ORDER_ITEM select * from ORDER_ITEM where ITEM_NUMBER =123;
언급URL : https://stackoverflow.com/questions/5574434/update-row-with-data-from-another-row-in-the-same-table
반응형
'programing' 카테고리의 다른 글
Nuxt.js에서 rootGetters를 사용하는 데 문제가 있습니다. (0) | 2022.12.20 |
---|---|
Python에서 전체 경로 파일 이름 만들기 (0) | 2022.12.20 |
리소스 텍스트 파일을 문자열(Java)로 읽기 위한 유틸리티 (0) | 2022.12.20 |
자기 주장이 있는 클래스 메서드 데코레이터? (0) | 2022.12.20 |
CSV 파일을 MySQL 테이블로 Import하려면 어떻게 해야 합니까? (0) | 2022.12.20 |