left join 예제

테이블 A를 테이블 B와 조인하면 테이블 B에 일치하는 행이 있는지 여부에 관계없이 테이블 A의 모든 행(왼쪽 테이블)이 결과 집합에 포함됩니다. SQL LEFT JOIN(왼쪽 조인 및 ON 키워드로 지정)은 두 테이블을 조인하고 SQL 식이 true인 두 테이블의 일치하는 행과 두 번째 테이블의 행과 일치하지 않는 프리스트 테이블의 행을 모두 가져옵니다. 두 테이블 t1과 t2에서 데이터를 쿼리할 것이라고 가정해 보겠습니다. 다음 문은 두 테이블을 조인하는 LEFT JOIN 절의 구문을 보여 줍니다. 즉, 왼쪽 조인은 왼쪽 테이블의 모든 값과 일치하는 조인 조건자가 없는 경우 오른쪽 테이블 또는 NULL에서 일치하는 값을 반환합니다. 왼쪽 조인과 왼쪽 외부 조인 사이에는 실제로 차이가 없습니다 . 이전 자습서에서는 조인 조건과 일치하는 두 테이블에 적어도 한 행이 있는 경우 행을 반환하는 내부 조인에 대해 배웠습니다. 내부 조인 절은 다른 테이블의 행과 일치하지 않는 행을 제거합니다. 관계형 데이터베이스에는 테이블 A와 테이블 B의 두 가지 데이터 집합이 있으며 기본 키와 외래 키로 지정된 관계가 있다고 가정해 보겠습니다. 이러한 테이블을 함께 조인한 결과는 다음 다이어그램으로 시각적으로 나타낼 수 있습니다.

또한 Foods 테이블의 마지막 행은 회사 ID의 값이 NULL이며 회사 테이블에 존재하지 않습니다. 이러한 사실은 왼쪽 조인의 중요한 것으로 판명될 것입니다. 왼쪽 JOIN 절은 왼쪽 테이블의 오른쪽 테이블의 행과 일치하지 않는 행을 찾으려는 경우에 매우 유용합니다. 두 테이블 간의 일치하지 않는 행을 찾으려면 SELECT 문에 WHERE 절을 추가하여 오른쪽 테이블의 열 값이 NULL 값을 포함하는 행만 쿼리합니다. 주문을 한 고객의 목록과 주문 한 세부 정보를 얻고 싶다고 가정 해 봅시다. 내부 조인은 두 테이블의 교차점에 레코드를 반환하므로 내부 조인에 적합합니다. SQL 조인에는 내부, 왼쪽, 오른쪽 및 전체의 네 가지 기본 유형이 있습니다. 이러한 네 가지 형식 간의 차이점을 설명하는 가장 쉽고 직관적인 방법은 데이터 집합 간의 가능한 모든 논리적 관계를 보여 주므로 Venn 다이어그램을 사용하는 것입니다. 왼쪽 외부 조인 또는 왼쪽 조인은 오른쪽 테이블 푸드에 일치하는 행이 있는지 여부에 관계없이 왼쪽 테이블 회사의 모든 행을 유지합니다.

다음은 위의 두 문에 대한 아래 출력입니다. 이 SQL 문은 먼저 counter_sale 테이블의 모든 행을 조인하고 조인된 필드가 일치하는 Foods 테이블의 행만 조이고 ON 절이 Foods 테이블의 레코드와 일치하지 않으면 조인은 여전히 행을 반환하지만 t의 각 열에 NULL이 반환됩니다. 그는 오른쪽 테이블. 따라서 이 결과는 회사 테이블과 결합되고 결과 테이블의 모든 행과 일치하고 회사 테이블의 일치하지 않는 행도 제공되지만 회사 테이블의 일치하지 않는 행의 경우 열 값은 NULL이 됩니다. 따라서 WHERE 절은 회사 이름 열 값이 NULL인 행을 제거하고 그 후에 ORDER BY 절은 청구서 번호에 따라 행을 오름차순으로 정렬합니다. 또한 테이블을 조인하는 순서도 중요합니다. 우리는 바로 고객 테이블에 주문 테이블을 조인. 고객 테이블을 주문 테이블에 바로 조인하면 결과는 고객 테이블에 주문 테이블을 왼쪽으로 조인하는 것과 동일합니다.

고객이 주문했는지 여부에 관계없이 주문에 대한 정보를 고객 테이블에 단순히 추가하려면 왼쪽 조인을 사용합니다. 왼쪽 조인은 테이블 A의 모든 레코드와 테이블 B의 일치하는 레코드를 반환합니다.