DB/SQL
[SQL] ORDER BY와 JOIN 사용 시 정렬 제대로 안됨...
꾹꾹이
2022. 10. 9. 14:39
728x90
개발 중 ORDER BY가 정상적으로 작동하지 않는 상황이 발생했다.
검색해보니 서브쿼리 내에서 ORDER BY를 사용하고 JOIN을 걸면 이런 문제가 발생한다고 한다.
A 테이블 내 쿼리 실행-> B 테이블 내 쿼리 실행 -> 두개 테이블 조인 -> 조건에 부합하는 데이터 체크 -> 정렬 -> 출력
이게 이상적인 순서라면 서브쿼리 내에서 사용했을 때는
A 테이블 내 쿼리 실행-> A 테이블 정렬 -> B 테이블 내 쿼리 실행 -> 두개 테이블 조인 -> 조건에 부합하는 데이터 체크 -> 출력
이렇게 작동한다는 것이다.
해결 방법은 ORDER BY를 가장 바깥쪽으로 빼주는 것이다.
어떤 글에선 limit를 걸면 해결이 된다는데 내 경우엔 변화가 없었다. 원인은 잘 모르겠다...
이거 때문에 CS 들어오고 난리가 났었다.. 작은 수정도 충분히 검수, 테스트한 뒤 운영에 반영해야 한다는 교훈이 되었다.