https://podo1017.tistory.com/200
서로 다른 두개의 테이블이 있을때, 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 값을 업데이트 하는 쿼리는 위와 같다.
반응형
'프로그래밍 > DB & Redis' 카테고리의 다른 글
[mysql] 현재 시간, 현재시간 unixtime, 특정시간, 특정시간 unixTime 쿼리 (0) | 2024.02.16 |
---|---|
[mysql] 특정 시간을 특정 타임존으로 확인하는 쿼리 (0) | 2023.12.29 |
mysql에서 특정 시간을 기준 시간 기점으로 - 해서 업데이트 하는 쿼리 (0) | 2023.11.09 |
[mysql] connection pool - 커넥션풀 (0) | 2023.05.15 |
[mysql] SELECT 후 CREATE (0) | 2023.03.17 |
댓글