2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
MySQL에서는LEFT JOIN
오른쪽 테이블에 일치하는 레코드가 없더라도 왼쪽 테이블(즉, LEFT JOIN 키워드의 왼쪽에 있는 테이블)의 모든 레코드를 반환하는 데 사용됩니다. 오른쪽 테이블에서 일치하지 않는 레코드의 경우 결과 집합의 오른쪽 테이블 부분이 NULL로 채워집니다.~에 대한ON
그리고WHERE
절의 사용은 다음과 같습니다.LEFT JOIN
의 역할은 다릅니다.
ON
나중에.만약에ON
나중에 오른쪽 테이블에 추가 조건부 제한이 있으며 이는 연결 시에도 적용되지만 왼쪽 테이블의 모든 레코드를 반환하는 원칙에는 영향을 미치지 않습니다.JOIN
작업에 의해 생성된 결과 집합이 추가로 필터링됩니다.조건을 걸면WHERE
절을 사용하면 조건을 충족하지 않는 레코드(왼쪽 테이블이든 오른쪽 테이블이든)가 제거되며, 이는 특히 NULL 값을 처리할 때 왼쪽 테이블의 모든 레코드를 반환하려는 원래 의도에 영향을 미칠 수 있습니다. 각별히 조심하세요.구체적인 사례 1:
두 개의 테이블이 있다고 가정합니다. 하나는employees
(직원 테이블), 다른 하나는departments
(부서 테이블)에서는 일부 직원이 특정 부서에 배정되지 않은 경우에도 모든 직원과 해당 부서 이름을 알고 싶습니다.
직원 테이블:
ID | 이름 |
---|---|
1 | 앨리스 |
2 | 단발 |
3 | 축가 |
부서 테이블:
ID | 이름 |
---|---|
1 | 인사부 |
2 | 그것 |
3 | 마케팅 |
안에,employees
테이블department_id
필드는 할당된 부서가 없음을 나타내는 NULL일 수 있습니다.
ON 사용 예:
SELECT employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;