본문 바로가기
프로그래밍/DB & Redis

[mysql]SELECT 후 UPDATE - join 으로 업데이트

by 뽀도 2023. 12. 19.

 

https://podo1017.tistory.com/200

 

[mysql] SELECT 후 UPDATE

SELECT 후 UPDATE ▶ Table `A`에서 데이터 select 후 그대로 Table `B`에 업데이트 QUERY UPDATE tableB as B, ( SELECT user_grade, user_age FROM tableA) as A SET B.user_grade = A.user_grade, B.user_age = A.user_age WHERE B.user_id = A.user_id; Q

podo1017.tistory.com

서로 다른 두개의 테이블이 있을때, A 테이블을 Select 해서 B 테이블의 값을 Update 하는 경우가 종종 있다.

그동안은 위의  포스팅 참고해서 쿼리하곤 했었는데, 지금 쓰는 mysql은 마리아 DB 버전 문제로 할 수 없다는 메시지를 받았다. 

 

버전에 따라 서브쿼리가 안될수도 있으니 join 해야 한다해서 join해서 해결 하였고 해당 쿼리 공유한다. 

 


 

SELECT * FROM tbl_gameplayer;

 

account과 score값을 가지는 tbl_gameplayer 테이블이 있다. 

 

SELECT * FROM tbl_ranking;

 

account , score, rank 값을 가지는 tbl_ranking 테이블이 있다. 

 

 

UPDATE tbl_ranking AS rnk
JOIN (
    SELECT accountIdx, score
    FROM tbl_gameplayer
) AS gmp
SET rnk.score = gmp.score
WHERE rnk.accountIDX = gmp.accountIDX;

 

이때 tbl_gameplayer의 accountIdx와 tbl_ranking의 accountIdx가 같은 경우 tbl_ranking 테이블의 score 값을 업데이트 하는 쿼리는 위와 같다. 

 

 

업데이트 후

 

반응형

댓글