조인 조건이 조인을 먼저 확인하는 조합 조건자를 명시적으로 사용하지 않는 한 NULL은 다른 값(NULL 자체도 아님)과 일치하지 않으므로 NULL 값을 포함할 수 있는 열에 테이블을 조인할 때 프로그래머는 각별한 주의를 기울여야 합니다. 열은 NULL이 아니며 나머지 조건자 조건을 적용합니다. 내부 조인은 참조 무결성을 적용하는 데이터베이스 또는 조인 열이 NULL이 아님을 보장하는 데이터베이스에서만 안전하게 사용할 수 있습니다. 많은 트랜잭션 처리 관계형 데이터베이스는 데이터 무결성을 보장하기 위해 원자성, 일관성, 격리, 내구성(ACID) 데이터 업데이트 표준을 사용하여 내부 조인을 적절한 선택으로 만듭니다. 그러나 트랜잭션 데이터베이스에는 일반적으로 NULL로 허용되는 바람직한 조인 열도 있습니다. 많은 보고 관계형 데이터베이스 및 데이터 웨어하우스는 대용량 추출, 변환, 로드(ETL) 일괄 업데이트를 사용하여 참조 무결성을 적용하기 어렵거나 불가능하게 만들므로 SQL 쿼리 작성자가 사용할 수 없는 NULL 조인 열이 발생할 수 있습니다. 내부 조인이 오류 표시 없이 데이터를 생략할 수 있습니다. 내부 조인을 사용할 선택은 데이터베이스 디자인 및 데이터 특성에 따라 다릅니다. 왼쪽 외부 조인은 일반적으로 한 테이블의 조인 열에 NULL 값이 포함될 수 있는 경우 내부 조인으로 대체할 수 있습니다.

자연 조인은 조인할 테이블에 동일한 이름과 동일한 데이터 형식을 갖는 열을 기반으로 하는 내부 조인의 유형입니다. 보시다시피 이 조인은 두 테이블에 있는 모든 레코드의 교차 곱을 반환합니다. 모든 내추럴 조인이 INNER JOIN 및 프로젝션(SELECT)을 사용하여 작성될 수 있는 것은 사실이지만, INNER JOIN은 제품(CROSS JOIN) 및 제한(WHERE)을 사용하여 작성될 수 있음도 사실입니다. 또한 공통의 열 이름이 없는 테이블 간에 자연 조인은 CROSS JOIN과 동일한 결과를 제공합니다. 따라서 관계인 결과에만 관심이 있다면 (그리고 왜 하지 않습니까?!) NATURAL JOIN이 필요한 유일한 조인 유형입니다. 물론, INNER JOIN 및 CROSS JOIN과 같은 언어 디자인 관점에서 단축된 약이 그 가치를 가지고 있지만 거의 모든 SQL 쿼리가 구문적으로 10 가지로 작성될 수 있지만, 의미가 동등하고 방법이며 이것이 SQL을 만드는 이유입니다. 낙하하기 때문에 개발하기가 매우 어렵습니다. 그러나 바로 가기 형식으로는 할 수 없는 일은 더 복잡한 조인입니다…

위의 예제에서 제공된 쿼리는 두 테이블의 DepartmentID 열을 사용하여 Employee 및 부서 테이블을 조인합니다. 이러한 테이블의 DepartmentID가 일치하는 경우(즉, 조인 조건자 만족) 쿼리는 두 테이블의 성 이름, DepartmentID 및 DepartmentName 열을 결과 행으로 결합합니다. DepartmentID가 일치하지 않으면 결과 행이 생성되지 않습니다. 세밀하게 관찰하면 위치 ID가 소스 테이블과 대상 테이블 사이의 공통 열임을 알 수 있습니다.