더북(TheBook)

다음 그림을 봅시다. country 테이블에서 국가 코드가 ‘KOR’인 건은 1건, countrylanguage 테이블에는 2건이 있습니다. 그리고 city 테이블에서 국가 코드가 ‘KOR’인 건은 70건입니다. 따라서 country와 countrylanguage 테이블을 조인하면 2건, 이 결과와 city 테이블을 조인하면 140건(2 × 70)이 조회됩니다. 내부 조인은 조인 테이블의 순서를 변경하더라도 최종 반환되는 건의 수는 변하지 않습니다.

▲ 그림 8-4 city 테이블을 추가한 결과

다음 쿼리를 실행해 보세요. 코드 8-6을 실행하면 오류가 발생합니다. 언뜻 보기에는 코드 8-5와 다르지 않은데, 왜 오류가 발생할까요?

코드 8-6

SELECT a.code, a.name, a.continent, a.region, a.population, b.language,
       name, c.district, c.population
  FROM country a
 INNER JOIN countrylanguage b
    ON a.code = b.countrycode
 INNER JOIN city c
    ON a.code = c.countrycode
 WHERE a.code = 'KOR'
 ORDER BY 1;

실행결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.