inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

SQL 코딩테스트를 위한 첫 걸음

inner join, left join

서브쿼리 질문

해결된 질문

388

합격가자

작성한 질문수 23

1

선생님 안녕하세요 서브쿼리 관련해서 질문드립니다...

선생님이 내주신 inner join 연습문제를 풀어보면서 궁금한 점이 생겼는데

서브쿼리를 적용할시 from 절 이후에 서브쿼리가 들어가기도 하고 아니면 inner join 이후 ㅎ서브쿼리가 들어가는 경우도 있고 하는거 같은데.. 그 차이점이 잘 이해가 가질 않아서요.. 어떤 경우에서 그렇게 판단하여 서브쿼리를 넣는 것인지 확인부탁드립니다..

sql mysql 코딩-테스트

답변 1

1

Gemma

합격가자님 안녕하세요:)

 

inner join에 대해서 아래 2개의 차이가 뭐냐 라는 질문으로 이해했는데요.

select *
from table1 as t1
inner join
(
    select *
    from table2
) t2
on t1.product_id=t2.product_id;
select *
from
(
    select *
    from table1
)t1
inner join table2 as t2
on t1.product_id=t2.product_id;

몇 가지 중요한 포인트를 나열해보겠습니다.

이 중에서 이해가 안가시다면, 편하게 질문 부탁드립니다.


  1. inner join: A inner join B를 하든, B inner join A를 하든 똑같습니다.
    -> 그렇기 때문에 서브쿼리를 적용할시 from 절 이후에 서브쿼리가 들어가기도 하고 아니면 inner join 이후 서브쿼리가 들어가는 경우가 있는데, 똑같습니다.

  2. join과 서브쿼리는 별개입니다. 합격가자님께서 이 2개를 같이 혼용해서 헷갈려하신다는 느낌을 받아서 말씀 드립니다.

  3. 서브쿼리는 보통 group by 사용/where절에 조건 추가한 후에 사용할 것입니다.


    추가 설명 드리자면, 아래 서브쿼리를 안 쓴 버전과 select * from sales 서브쿼리 쓴 버전이 있는데요. 서브쿼리를 쓴 버전이 문법적으로 틀리지 않고 당연히 써도 되겠지만, 굳이 select * from sales 이렇게 쓸 목적으로 서브쿼리를 쓰지는 않을 것입니다. 보통 쓰게 된다면 group by/where 조건을 사용하기 위해(=결과를 간소화하기 위해) 서브쿼리를 사용할 것입니다.

SELECT *

FROM SALES AS S

INNER JOIN PRODUCT AS P

ON S.PRODUCT_ID = P.PRODUCT_ID;
SELECT *

FROM
(
   SELECT *
   FROM SALES
) AS S
INNER JOIN
(
   SELECT *
   FROM PRODUCT
) AS P

ON S.PRODUCT_ID = P.PRODUCT_ID;
  1. left outer join: A left outer join B와, B left outer join A는 다릅니다!
    이 부분 꼭 inner join과 구별하시길 바랍니다.

1

합격가자

친절한 답변 감사합니다!! 이해가 잘되었습니다 ㅠㅠ

[해결됨]마지막 강의 내용 수정 화면이 기능을 못하네요.

0

11

1

[해결됨]부분적으로 화면 이동이 안되는 부분이 있습니다.

0

12

6

68강 문제 풀이

0

15

1

현대 쿼리 복잡성에 관한 질문

0

18

2

Queue

0

29

1

key_length 가 사용되는곳

0

30

0

[과제]1-9 피벗 테이블 만들어보기

0

34

2

cnt수를 구할 때 왜 user_pseudo_id 를 사용하나요?

0

44

2

SQL 기본 문법

0

85

2

2강에 파일 어디있을까여,,

0

78

2

문제 링크 변경

0

117

2

SQL 파일 다운로드

0

128

2

workbench 테이블 생성

0

337

2

sql 코딩 테스트에서 index 생성 가능 여부

1

373

2

cross join, full join강의 / leetcode 1280번 문제 질문드립니다

1

348

1

not In강의 / leetcode 1978 질문 드립니다

2

248

1

LEETCODE - Sales Analysis 3 코드 질문드립니다.

1

339

1

[The Latest Login in 2020] datetime 계산 관련

1

306

1

[Average Selling Price] 문제 테스트케이스 실패

1

352

3

EASY INNER JOIN 관련 average-selling-price 연습문제

1

303

1

INNER JOIN 강의 질문

1

385

2

문제 주소 링크

1

343

2

work bench 설치관련 문의

1

322

2

깃헙 데스크탑, MYSQL 워크벤치 연동

2

918

3