안녕하세요. 질문 하나 드리겠습니다. 도와주세요.
ORACLE > MySQL 변환 중 아래와 같이 merge T1 using (SUBQUERY) 형태의 쿼리를
mysql 로 변환 하는데 헤매고 있습니다.
---------------------------------------------------------------------------------
merge into table1 a using ( select id, column1, column2, rank from ( select id, column1, column2, row_number() over(order by column1 desc nulls last) rank from table1 a left join ( select name, sum(column1) column1, sum(column2) column1 from table2 b group by name ) b on a.name = b.name order by column1 desc) ) b on (a.id = b.id) when matched then update set a.column1 = b.column1;
--------------------------------------------------------------------------------------------------
일단, 저 쿼리가 실행 되기 이전에 안쪽 select 쿼리라도 실행 해보려 아래와 같이 짜보았는데 너무 어렵네요.
-------------------------------------------------------------------------------------------------
select id, column1, column2, rank from ( select x.*, @rownum := @rownum + 1 as rank from ( select id, column1, column2 from table1 a left join ( select name, sum(column1) as column1, sum(column2) as column2 from table2 group by name ) b on a.name = b.name join (select @rownum := 0) as r order by column1 is null desc, column1 desc ) x ) t
---------------------------------------------------------------------------------------
참고로 table1 에도 name 컬럼이 있습니다.
어느부분이 잘못 되었는지, 그리고 참고할 만한 문서라도 추천해주신다면 감사하겠습니다.
도와 주세요.