더북(TheBook)

예제를 봅시다.

코드 8-15

SELECT a.continent, COUNT(*) 전체건수, COUNT(b.name) 도시건수
  FROM country a
NATURAL JOIN city b
 GROUP BY a.continent ;

실행결과

일단 결과를 보면 조회되는 로우가 없습니다. 코드 8-15에서는 NATURAL을 명시해 자연 조인을 했습니다. 그런데 왜 결과가 0건일까요? 자연 조인은 조인 조건을 붙이지 않는 대신에 두 테이블에 이름과 데이터 타입이 같은 칼럼이 반드시 있어야 합니다. 하지만 country와 city 테이블의 조인 칼럼은 각각 code와 countrycode로 칼럼명이 다르므로 자연 조인 결과로 0건이 나옵니다. 이것이 바로 자연 조인의 제약사항이자 첫 번째 특징입니다. 즉, 자연 조인을 하려면 조인 테이블에 이름과 데이터 타입이 같은 칼럼이 존재해야 합니다.

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