집 >데이터 베이스 >MySQL 튜토리얼 >Self-Join을 사용하여 테이블 내에서 데이터를 복사하는 방법은 무엇입니까?
테이블 내에서 데이터 복사
관계형 데이터베이스에서는 동일한 테이블 내의 한 행에서 다른 행으로 데이터를 복사하는 것이 유용한 경우가 많습니다. 이 문서에서는 동일한 테이블에 있는 다른 행의 데이터를 사용하여 행 값을 업데이트하는 방법을 살펴봅니다.
다음 구조의 테이블을 생각해 보세요.
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
목표는 동일한 'NAME'이 있는 다른 행에서 값을 가져와 'VALUE' 열에 누락된 값이 있는 행의 값을 가져옵니다. 예상 출력:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
솔루션에는 셀프 조인이 포함됩니다. null이 아닌 행만 저장하는 임시 테이블을 사용하면 원래 테이블을 업데이트할 수 있습니다.
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 data_table dt1, data_table dt2 SET dt1.VALUE = dt2.VALUE WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
위 내용은 Self-Join을 사용하여 테이블 내에서 데이터를 복사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!