-
[SQLite] 자연 조인(NATURAL JOIN)Software/SQLite 2018. 1. 20. 16:56반응형
자연 조인은 내부 조인의 한 일종이다. 내부 조인의 경우 명시적으로 조인 조건을 작성을 해주었지만 자연 조인의 경우는 별도의 조인 조건 없이 테이블이 가지고 있는 공통 컬럼 이름을 매개체로 연결된다.
즉 조인 조건 (WHERE, ON 절)은 불필요하며 대신 FROM 절에서 두 테이블 이름 사이에 NATURAL JOIN 키워드를 추가하면 된다. 그리고 자연 조인의 경우 동일 컬럼 이름을 매개체로 연결되어 있기에 조회 필드에서 와일드 카드(*) 사용 시 중복된 컬럼은 한 번만 조회된다.
아마 다음 예제를 보면 쉽게 이해할 수 있을 것이다.
sqlite> SELECT * FROM cars NATURAL JOIN carBrand;
car_id|brand_id|name|price|brandName
1|1|Sonata|1500000|Hyundai
3|2|K5|1500000|Kia
4|2|K3|1200000|Kia
5|2|K7|2200000|Kia
위 예제에서는 cars 테이블과 carBrand 테이블이 공통적으로 가지고 있는 brand_id라는 컬럼이 연결 매개체가 되었다. 그리고 이 중복 컬럼은 위와 같이 단 한번만 조회 된 것을 볼 수 있다. 만약 이 것을 내부 조인을 통해서 작성한다면 아래와 같은 결과를 얻게 될 것이다.
sqlite> SELECT * FROM cars, carBrand WHERE cars.brand_id = carBrand.brand_id;
car_id|brand_id|name|price|brand_id|brandName
1|1|Sonata|1500000|1|Hyundai
3|2|K5|1500000|2|Kia
4|2|K3|1200000|2|Kia
5|2|K7|2200000|2|Kia
조회된 결과를 보면 자연 조인과는 다르게 brand_id 컬럼이 중복으로 조회 된 것을 알 수 있다.
반응형'Software > SQLite' 카테고리의 다른 글
[SQLite] 인덱스(INDEX) (0) 2018.03.19 [SQLite] 외부 조인 (OUTER JOIN) (0) 2018.01.20 [SQLite] 자체 조인 (SELF JOIN) (0) 2018.01.14 [SQLite] 내부 조인(Inner Join) (0) 2018.01.13 [SQLite] 중첩 질의 (Nested query) (0) 2017.11.27 댓글