- 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능
2. EQUI JOIN(등가 조인)
- 두 테이블의 칼럼 값이 정확히 일치하는 경우, 대부분 PK와 FK 관계를 기반으로 함
구문 형식구문 형식
예시 1예시- 위 SQL을 보면 SELECT 구문에 단순히 칼럼명이 오지 않고 "테이블명.칼럼명"처럼 테이블명과 칼럼명이 같이 나타난다. 이렇게 특정 칼럼에 접근하기 위해 그 칼럼이 어느 테이블에 존재하는 칼럼인지를 명시하는 것은 두 가지 이유가 있다.
1. 먼저 모든 테이블에 칼럼들이 유일한 이름을 가진다면 상관없지만, JOIN에 사용되는 두 개의 테이블에 같은 칼럼명이 존재하는 경우에는 DBMS의 옵티마이저는 어떤 칼럼을 사용해야 할지 모르기 때문에 파싱 단계에서 에러가 발생된다. 2. 두 번째는 개발자나 사용자가 조회할 데이터가 어느 테이블에 있는 칼럼을 말하는 것인지 쉽게 알 수 있게 하므로 SQL에 대한 가독성이나 유지보수성을 높이는 효과가 있다.
예시 2예시2- 위 SQL문과 ALIAS를 사용하여 같은 결과를 얻을 수 있다.예시2- 중복이 되지 않는 칼럼의 경우 ALIAS를 사용하지 않아도 되므로, 아래 SQL문은 위 SQL문과 같은 결과를 얻을 수 있다. 하지만 같은 이름을 가진 중복 칼럼의 경우는 테이블명이나 ALIAS가 필수 조건이다.예시2
3. Non EQUI JOIN(비등가 조인)
- 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용 - "=" 연산자가 아닌 다른(Between, >, >=, <, <= 등) 연산자들을 사용하여 JOIN 수행 - 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에는 EQUI JOIN을 사용할 수 없어 Non EQUI JOIN을 시도할 수 있으나 데이터 모델에 따라서 불가능한 경우도 있음
구문 형식 (아래 Between a AND b 조건은 한 사례일 뿐이다.) 구문 형식
예시예시- SQL 연산자뿐만 아니라 "=" 연산자가 아닌 ">" 나 "<"와 같은 다른 연산자를 사용했을 경우에도 모두 Non EQUI JOIN에 해당한다.