inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 데이터베이스 - 기본편

다중 컬럼 서브쿼리

Inner Join에서 쿼리 작성 시 ON 절 테이블 배치 순서

86

lucli

작성한 질문수 4

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)


2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)


3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)


[질문 내용]

안녕하세요.


Inner Join 시 ON의 조건을 선언하는 부분에서, FROM 절에 있는 테이블을 먼저 작성하고, 이후 Join 절에 있는 테이블을 작성한 것을 보았습니다.

ex. select u.address from orders o

join users u on o.user_id = u.user_id

where o.order_id = 1 ;

 

여기서 u.user_id = o.user_id 라고 작성해도 동일한 결과를 반환하는데, o.user_id = u.user_id 형태로 쓴 것은 가독성을 높이기 위함인가요?

아니면 성능상의 이슈가 있는 건가요?

sql mysql dbms/rdbms SQLD

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
lucli님, 질문에 대한 답변을 드리겠습니다.

Inner Join 시 ON 절에서 어떤 테이블의 컬럼을 먼저 작성하느냐는 가독성에 영향을 줄 수 있으나, 성능에는 영향을 미치지 않습니다. SQL에서는 ON 절의 조건 순서는 중요하지 않으며, DBMS는 내부적으로 동일한 쿼리 계획을 생성하여 두 경우 모두 동일한 결과를 반환하게 됩니다.

따라서, o.user_id = u.user_id 혹은 u.user_id = o.user_id 둘 다 성능 측면에서는 차이가 없으니 가독성과 논리적인 흐름을 고려하여 작성하면 됩니다. 일반적으로 From 또는 Join 절에 처음 나타나는 테이블의 컬럼을 기준으로 작성하는 것이 가독성을 높일 수 있습니다.

도움이 되셨기를 바랍니다! 추가적인 질문이 있으시면 언제든지 말씀해 주세요.

jOOQ에 대한 더 많은 정보
Spring Boot의 jOOQ 관련 문서

드랍 테이블로 지운 ordes에 대해서 질문

0

23

1

문제 풀이 1번 질문

0

29

1

간단한 오타 제보입니다.

0

69

1

ON을 명시하지 않았을 경우 질문드립니다.

0

87

1

강의 2:53 union을썼는데도 션이 중복

0

78

1

where 대신 having을 써도 되나요?

0

106

1

주문 내역에 대한 고객 데이터

0

88

2

in 수행

0

61

1

외부조인1 강의 관련 질문

0

87

3

커버링 인덱스와 랜덤i/o 질문

0

80

1

오타인거죠?

0

92

1

섹션 3 퀴즈 3번 문제

0

89

2

GROUP BY 기준 컬럼

0

97

1

질문이 있습니다

0

65

1

오타

0

90

2

실제 상용 서비스 질문

0

110

1

파티셔닝 관련 질문입니다.

0

70

1

join 문제 풀이2 문제1(self join) 질문

0

78

1

9. 인덱스2.pdf 중에서

0

90

1

문제 2번

0

82

2

문제와 풀이1 - 3번 문제

-1

84

2

잘 사용하진 않지만 풀 외부 조인을 사용하신 사례가 궁금합니다!

0

106

1

[58. 인덱스와 정렬]을 듣다가 질문입니다.

0

108

2

두개 이상의 테이블을 조인할때 인덱스 질문이 있습니다.

0

76

1