inflearn logo
강의

Course

Instructor

[Renewal] First-time SQL and Database (MySQL) Bootcamp [From Beginner to Application]

서브쿼리를 JOIN으로 바꾸기

157

claireyy0127848

9 asked

0

안녕하세요! SUBQUERY 이해 (업데이트) 강의에서 예2의 비교 부분의 쿼리문을 JOIN으로 바꿔서 표현해보려고 하는데 실행 결과 category_id가 1부터 전부 나옵니다. 어떻게 해야 5('Comedy')보다 큰 것만 추출할 수 있을까요?

image.png

 

JOIN으로 바꿔서 표현해본 쿼리문

image.png

 

실행 결과

image.png

 

python sql mysql dbms/rdbms

Answer 1

0

funcoding

안녕하세요. 답변 도우미입니다.

현재 JOIN 쿼리에서 WHERE 조건이 잘못되어 원하는 결과가 나오지 않고 있습니다.

기존 WHERE 절 조건에서는 fc.category_id > (c.name = 'Comedy')로 되어 있는데, 이 조건은 SQL에서 논리적으로 잘못된 방식입니다. (c.name = 'Comedy')는 불리언 값으로 처리되어, 모든 category_id에 대해 불리언 비교가 이루어지기 때문에 올바른 필터링이 되지 않습니다.

해결 방법

JOIN을 사용하면서, Comedy라는 이름을 가진 category_id보다 큰 category_id만 선택하려면, 먼저 Comedycategory_id를 가져와서 그 값보다 큰 category_id를 필터링해야 합니다. 이를 위해서는 서브쿼리로 Comedycategory_id를 가져와 직접 비교하는 방식을 사용해야 합니다.

수정된 쿼리 예시

아래와 같이 Comedycategory_id를 구하는 서브쿼리를 WHERE 절에서 활용하면 원하는 결과를 얻을 수 있습니다.

SELECT fc.category_id, COUNT(*) AS film_count
FROM film_category fc
JOIN category c ON fc.category_id = c.category_id
WHERE fc.category_id > (
    SELECT category_id FROM category WHERE name = 'Comedy'
)
GROUP BY fc.category_id;

쿼리 설명

  1. JOIN을 통해 film_category 테이블과 category 테이블을 연결합니다.

  2. WHERE 조건에서 fc.category_idComedycategory_id보다 큰 항목만 선택하도록 합니다.

  3. GROUP BYcategory_idCOUNT를 수행하여 결과를 집계합니다.

예상 결과

위와 같은 쿼리를 실행하면 Comedy 카테고리보다 큰 category_id에 해당하는 영화 개수(film_count)를 정확히 얻을 수 있습니다.

감사합니다. 잔재미코딩 드림

실습을 따라하는데 데이터베이스가 보이지 않아요

0

54

1

섹션1 4강부터 강의 실행 안됨 이슈

0

77

1

강의 자료 다운로드 관

0

90

1

강의 영상이 안나와요..

0

82

1

섹션4 화면 자체가 안나와요

0

118

1

강의 화면이 안 보이고, 목소리밖에 안나와요 ;;

0

116

1

데이터 삭제 질문

0

123

1

mysql 설치가 되지 않습니다.

0

1386

3

강의 결과 질문 - SQLD, 데이터베이스 설계, 프로젝트 구축 하여 취업

0

147

1

지마켓 파일 불러왔는데, 테이블이 생성이 안됩니다

0

119

1

실습 코드 깃허브 업로드

0

145

1

sql_safe_updates 옵션

0

154

1

sql 설치 문제

0

1423

2

중고급 SQL과 실전 데이터 문의

1

158

1

(맥환경) workbench 이용할 때 패스워드 입력 안해도 자동으로 활성화 가능해져요..

0

351

1

강의 커리큘럼 질문 있습니다.

0

176

1

강의 자료 이미지가 보이지 않습니다.

0

162

1

Join 구문에서 메인 테이블

0

178

1

예제문제 추가 쿼리 질문

0

204

2

강의 화면 출력이 되지 않는 현상

0

211

1

파이썬으로 다루는 MySQL

0

208

1

JOIN 활용 SQL 연습문제

0

179

1

Dbeaver 라는 SQL 쿼리 실행 툴을 써도 될까요?

0

305

1

Sakila PDF 파일 오류

0

190

1