아래 SQL문장이 2개 존재 하는데요.
2개 거의 동일합니다.
그런데, 첫번째 sql문장은 join시 sql문장을 한번더 감싸서 join했구요.
두번째 sql문장은 바로 join했구요.
그런데, 첫번째 sql문장은 오류가 발생하네요.
현재, 아래 처럼 sql문장이 간단하지 않구요.
한번더 감싼 이유는 나름대로 이유가 있어서 한번더 감싼겁니다.
이렇게 한번더 감싼, sql문장이 존재 할때 join 후 update를 어떻게 해야 될까요?
참고로, update시 많은 자료가 update됩니다.
시간도 조금 걸리구요.
아쉽게도 mysql 에서는 with(임시테이블)이 8.0 이상에서만 지원 되더군요.
현재 ver6.5를 사용하는데 임시테이블 가능한가요?
[오류발생]
UPDATE pp1 INNER JOIN ( select a.*
from (SELECT rank, player_seq
FROM pp1
WHERE contest_yy = '2016'
) a
) pp2
ON ( pp1.player_seq = pp2.player_seq )
SET pp1.rank = pp2.rank
WHERE pp1.contest_yy = '2016';
[오류 미발생]
UPDATE pp1 INNER JOIN ( SELECT rank, player_seq FROM pp1 WHERE contest_yy = '2016' ) pp2 ON ( pp1.player_seq = pp2.player_seq ) SET pp1.rank = pp2.rank WHERE pp1.contest_yy = '2016';