logo

MySQL 왼쪽 조인

MySQL의 Left Join은 여러 테이블의 레코드를 쿼리하는 데 사용됩니다. 이 절은 FROM 키워드 바로 다음에 SELECT 문과 함께 사용할 수 있는 Inner Join 절과 유사합니다. Left Join 절을 사용하면 두 번째(오른쪽) 테이블에서 일치하는 레코드가 발견되지 않더라도 첫 번째(왼쪽) 테이블의 모든 레코드가 반환됩니다. 오른쪽 테이블에서 일치하는 레코드를 찾지 못하면 null을 반환합니다.

즉, Left Join 절은 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 레코드를 반환하거나 일치하는 레코드가 없으면 Null을 반환합니다. 이 조인은 왼쪽 외부 조인 절. 따라서 Outer는 Left Join과 함께 사용할 선택적 키워드입니다.

Left Join이 왼쪽 테이블의 모든 레코드를 반환하고 오른쪽 테이블의 일치하는 레코드만 반환하는 다음과 같은 시각적 표현을 통해 이를 이해할 수 있습니다.

MySQL 왼쪽 조인

MySQL LEFT JOIN 구문

다음 구문은 두 개 이상의 테이블을 조인하는 Left Join 절을 설명합니다.

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

위 구문에서, 1 번 테이블 왼쪽 테이블이고, 테이블 2 오른쪽 테이블이에요 이 절은 지정된 값을 기반으로 table1의 모든 레코드와 table2의 일치하는 레코드를 반환합니다. 조인 조건 .

MySQL LEFT JOIN 예

Left Join 또는 Left Outer Join 절의 작동을 이해하기 위해 몇 가지 예를 들어 보겠습니다.

Java에서 배열 반환

두 테이블을 조인하는 LEFT JOIN 절

여기서는 두 개의 테이블을 생성하겠습니다. 고객의 그리고 ' 명령' 여기에는 다음 데이터가 포함됩니다.

테이블: 고객

MySQL 왼쪽 조인

표: 주문

MySQL 왼쪽 조인

두 테이블 모두에서 레코드를 선택하려면 다음 쿼리를 실행합니다.

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

쿼리가 성공적으로 실행되면 다음과 같은 출력이 제공됩니다.

MySQL 왼쪽 조인

USING 절을 사용한 MySQL LEFT JOIN

테이블 고객과 주문에는 동일한 열 이름(customer_id)이 있습니다. 이 경우 MySQL Left Join을 USING 절과 함께 사용하여 레코드에 액세스할 수도 있습니다. 다음 문은 USING 키워드와 함께 Left Join 절을 사용하여 고객 ID, 고객 이름, 직업, 가격 및 날짜를 ​​반환합니다.

자바에서 문자열 입력하기
 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

위의 명령문은 다음과 같은 출력을 제공합니다.

MySQL 왼쪽 조인

Group By 절을 사용한 MySQL LEFT JOIN

Left Join은 GROUP BY 절과 함께 사용할 수도 있습니다. 다음 문은 GROUP BY 절과 함께 Left Join 절을 사용하여 고객 ID, 고객 이름, 자격, 가격 및 날짜를 ​​반환합니다.

 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

위의 명령문은 다음과 같은 출력을 제공합니다.

MySQL 왼쪽 조인

WHERE 절을 사용한 LEFT JOIN

WHERE 절은 다음을 반환하는 데 사용됩니다. 필터 테이블의 결과입니다. 다음 예에서는 Left Join 절을 사용하여 이를 보여줍니다.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

이 명령문은 다음과 같은 결과를 제공합니다.

MySQL 왼쪽 조인

MySQL LEFT JOIN 여러 테이블

우리는 이미 '라는 이름의 두 개의 테이블을 만들었습니다. 고객의 그리고 ' 명령' . 테이블을 하나 더 만들고 이름을 ' 다음 데이터가 포함된 연락처':

MySQL 왼쪽 조인

다음 명령문을 실행하여 세 개의 테이블 고객, 주문 및 연락처를 조인합니다.

 SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income; 

위 쿼리를 성공적으로 실행하면 다음과 같은 결과가 출력됩니다.

MySQL 왼쪽 조인

일치하지 않는 레코드를 얻기 위해 LEFT JOIN 절을 사용

LEFT JOIN 절은 다른 테이블의 일치하는 데이터 행이 포함되지 않은 테이블의 레코드를 가져오려는 경우에도 유용합니다.

k 최근접 이웃 알고리즘

휴대폰 번호가 없는 고객을 찾기 위해 LEFT JOIN 절을 사용하는 다음 예를 통해 이를 이해할 수 있습니다.

 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

위의 명령문은 다음 출력을 반환합니다.

MySQL 왼쪽 조인

MySQL LEFT JOIN의 WHERE와 ON 절의 차이점

LEFT 조인에서 WHERE 및 ON 조건은 다른 결과를 제공합니다. 차이점을 이해하기 위해 다음 쿼리를 볼 수 있습니다.

WHERE 절

자바 프로그래밍 소수
 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

다음과 같은 결과가 반환됩니다.

MySQL 왼쪽 조인

ON 절

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

다음과 같은 출력이 제공됩니다.

MySQL 왼쪽 조인

참고: Inner Join 절의 WHERE 및 ON 조건은 항상 동일한 결과를 반환합니다.