> 데이터 베이스 > MySQL 튜토리얼 > 다른 테이블의 데이터로 Oracle SQL 테이블을 업데이트하는 방법은 무엇입니까?

다른 테이블의 데이터로 Oracle SQL 테이블을 업데이트하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-22 02:46:10
원래의
478명이 탐색했습니다.

How to Update an Oracle SQL Table with Data from Another Table?

Oracle SQL을 사용하여 테이블 데이터 업데이트

Oracle SQL과 같은 관계형 데이터베이스를 처리할 때 다른 테이블의 데이터로 테이블을 업데이트해야 하는 시나리오가 발생할 수 있습니다. 이 작업은 일반적으로 SQL의 UPDATE 명령을 사용하여 수행됩니다.

질문:

테이블 1과 테이블 2라는 두 개의 테이블이 있고 둘 다 id, name 및 desc 열을 포함하고 일치하는 id 값을 기반으로 테이블 1의 데이터를 테이블 2의 해당 데이터로 업데이트해야 한다고 가정합니다. 원하는 결과는 테이블 2의 id 값에 해당하는 name 및 desc 값으로 테이블 1을 업데이트해야 한다는 것입니다.

해결책:

이 업데이트를 구현하려면 Oracle SQL에서 관련 업데이트를 사용할 수 있습니다. 자세한 방법은 다음과 같습니다.

<code class="language-sql">UPDATE table1 t1
SET (name, desc) = (SELECT t2.name, t2.desc
FROM table2 t2
WHERE t1.id = t2.id)
WHERE EXISTS (
SELECT 1
FROM table2 t2
WHERE t1.id = t2.id );</code>
로그인 후 복사

지침:

  • UPDATE 명령은 테이블 1에서 업데이트 작업을 시작하고 이를 t1이라는 별칭으로 지정합니다.
  • SET 절은 표 1의 name 및 desc 열이 표 2의 값으로 업데이트되도록 지정합니다.
  • SET 절의 하위 쿼리는 Table 2(t2)에서 Table 1의 각 행에 해당하는 name 및 desc 값을 검색합니다.
  • 하위 쿼리의 WHERE 절은 ID 값이 일치하는 행만 업데이트되도록 합니다.
  • 외부 WHERE 절은 표 1의 각 행과 일치하는 표 2의 행이 있는지 추가로 확인합니다. 이렇게 하면 유효한 일치 항목이 있는 행만 업데이트됩니다.

대체 접근 방식(키가 뷰를 유지한다고 가정):

표 1과 표 2를 조인하여 키 보존 뷰가 생성되는 경우 다음 방법을 사용할 수도 있습니다.

<code class="language-sql">UPDATE (SELECT t1.id, 
t1.name name1,
t1.desc desc1,
t2.name name2,
t2.desc desc2
FROM table1 t1,
table2 t2
WHERE t1.id = t2.id)
SET name1 = name2,
desc1 = desc2;</code>
로그인 후 복사

지침:

  • 이 방법에서는 키 보존 뷰가 중간 단계로 생성되었다고 가정합니다.
  • 첫 번째 부분은 테이블 1과 테이블 2를 조인하는 하위 쿼리입니다.
  • 키 기반 뷰를 유지하면서 중간 뷰의 값으로 테이블 1의 이름 및 설명 열을 직접 업데이트할 수 있습니다.

위 내용은 다른 테이블의 데이터로 Oracle SQL 테이블을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿