[서브쿼리 내 ORDER BY]

hamonjamon·2022년 8월 30일
1


서브쿼리 내에서 ORDER BY를 설정해도 효과가 없는 이유


=> SQL standard에서 정한 DB 테이블의 정의에서는 테이블을 채우고 있는 데이터의 ORDER(정렬)은 아무런 의미가 없기 때문이라고한다.


| 참고 자료
=> https://mariadb.com/kb/en/why-is-order-by-in-a-from-subquery-ignored/



해결 방법


1. 서브쿼리 내 order by 뒤에 limit를 걸어라

서브쿼리 내에 LIMIT를 걸어줄 경우 ORDER BY가 먹히는 이유는 LIMIT를 걸음으로써 인해 데이터의 순서 뿐만 아니라 갯수까지 제한되어 테이블의 본질적인 내용이 변화된다고 보기에 MYSQL, MARIA DB에서는 ORDER BY가 적용된다고 한다.

2. ORDER BY절을 최상위 절로 옮겨라 (위 참고자료에서 추천하는 방식)

0개의 댓글