-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
쿼리문 순서 질문
21.12.17 11:04 작성 조회수 136
0
안녕하세요 강사님.
좀 쓸데없는 질문이긴 한데
쿼리문 실행 흐름이 대략 FROM WHERE GROUP BY HAVING SELECT ORDER BY
이런 식으로 실행된다고 배웠습니다.
그런데
SELECT TOP 1 * FROM batting WHERE teamID = 'BOS' ORDER BY HR DESC; --보스턴 팀 소속으로 단일 년도 최다 홈런을 친 사람의 정보
해당 쿼리문에서
ORDER 보다 SELECT가 먼저 실행된다면
아직 홈런 횟수를 내림차순 하기 이전의 테이블에서
최상단의 행을 가져오기 때문에
원래라면 의도하는 결과가 나오지 않는 것이 아닌지 궁금합니다.
감사합니다.
답변을 작성해보세요.
2
Rookiss
지식공유자2021.12.18
느낌적으로 FROM - WHERE 순서로 실행된다는 것을 강조한 것이지만,
사실 SQL 구문은 원리가 굉장히 복잡하고 말씀주신 것처럼 다양한 상황이 있습니다.
기본적으로 SELECT를 해서 집합을 갖고 오고 ORDER BY 로 행을 정렬하는게 일반적이지만,
TOP1 등이 붙으면 정말 제일 좋은 후보 1개만 갖고 오면 되니,
전체를 갖고오고 정렬하는 대신 내부 알고리즘이 바뀔 수가 있겠죠.
답변 1