다음 그림을 봅시다. 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;
실행결과