programing

SQL이 테이블의 값을 다른 테이블에서 바꿉니다.

nicescript 2023. 2. 2. 21:18
반응형

SQL이 테이블의 값을 다른 테이블에서 바꿉니다.

테이블이 2개 있는데 table1 열의 값 일부를 table2 열의 값으로 바꾸고 싶습니다.

더 잘 설명하자면:여기에 이미지 설명 입력 ID가 3-9인 행의 table2에서 table1의 name 열까지 값을 입력합니다.

저는 Mysql 워크벤치와 MariaDB에서 일하고 있습니다.

가장 직접적인 접근법은 의 서브쿼리를 사용하는 것입니다.SET절을 클릭합니다.

UPDATE table1
       SET name = (SELECT t2.name
                          FROM table2 t2
                          WHERE t2.pid = table1.id)
       WHERE id >= 3
             AND id <= 9;

@stickybit의 답변은 정상적으로 동작할 수 있지만, JOIN을 사용하는 것이 서브쿼리와 BETWIN보다 효율적이기 때문에 JOIN을 사용하는 대신 구문을 좀 더 심플하게 만들 수 있다고 생각했습니다.

UPDATE table1
JOIN table2
ON table1.id = table2.pid
SET table1.name = table2.name
WHERE table1.id BETWEEN 3 AND 9;
update table1 t1 
set t1.name=t2.name from table1 t1 ,table2 t2 
where t1.id=t2.id and id between 2 and 10

언급URL : https://stackoverflow.com/questions/50628974/sql-replace-values-in-a-table-from-another-table

반응형