요약:이 튜토리얼에서,당신은 당신을 사용하는 방법을 배울 것입니다 PostgreSQLLEFT JOIN
절을 선택하려면 여러 테이블에서 데이터.
PostgreSQL LEFT JOIN 절 소개
A
및B
두 테이블이 있다고 가정합니다.,
테이블의 각 행은A
도로 많은 해당 행에 표B
동안 각 행에 표B
하나만 해당 행에 표A
.
선택하려면 테이블에서 데이터는A
지 않을 수 있는 해당 행에 표B
를 사용하여LEFT JOIN
clause.,
다음 말씀을 보여줍LEFT JOIN
구문을 결합하는 테이블A
테이블과 함께B
:
Code language: SQL (Structured Query Language) (sql)
하여 가입하세 표A
테이블과 함께B
테이블을 사용하여 왼쪽에 참으로 다음과 같은 단계를 수행합니다:
- 첫 번째, 지정의 열 두 테이블에서 원하는 데이터를 선택하는
SELECT
clause. - 둘째,
FROM
절에서 왼쪽 테이블(tableA
)을 지정합니다., - 셋째,지정 오른쪽에 표(테이블의
B
)LEFT JOIN
조항 및 조건 후ON
키워드를 사용합니다.
LEFT JOIN
절은 왼쪽 테이블에서 데이터 선택을 시작합니다. 각 행의 왼쪽 테이블에,그것은 값을 비교pka
열의 값으로 각각의 행에는fka
열이 올바른 표입니다.,
경우 이러한 값이 같은 왼쪽 가입 절 새 행을 만들이 포함된 열이 나타나는SELECT
절 추가 이것을 행하는 결과를 설정합니다.
이러한 값이 동일하지 않은 경우 left join 절은SELECT
절에 나타나는 열을 포함하는 새 행도 만듭니다. 또한 오른쪽 테이블에서 오는 열을 NULL 로 채 웁니다.,
다음과 같은 벤다이어그램을 설명하는 방법LEFT JOIN
절 작동:
참고하는LEFT JOIN
라고도 합LEFT OUTER JOIN
.
PostgreSQL 왼쪽에 참 예
살펴보자는 다음film
및inventory
테이블에서 샘플 데이터베이스입니다.,
각각의 행에는film
테이블 제로나 많은 행inventory
테이블. inventory
테이블의 각 행에는film
테이블에 하나의 행과 단 하나의 행이 있습니다.
film_id
컬럼 설정하 사이의 링크를film
및inventory
테이블이 있습니다.,
다음 문을 사용하는LEFT JOIN
절을 참film
테이블과 함께inventory
테이블:
경우에서 행film
테이블이 없에 일치하는 행inventory
테이블 의 값inventory_id
열의 이 행NULL
.,
다음과 같은 문장을 추가WHERE
절을 찾기 위해 영화는지에서 재고:
다음과 같은 문 같은 결과를 반환한다., 차이 사용하는 테이블 별칭을 쿼리 더 간결한다.
경우 테이블이 이 같은 열 이름을 사용하는ON
clause, 사용할 수 있습니다USING
다음과 같은 구문을 사용합니다.
이 기술을 사용할 때 유용하는 행을 선택에서 한 테이블이 없는 일치입니다.피>