>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 JOIN과 LEFT JOIN의 차이점은 무엇입니까?

MySQL에서 JOIN과 LEFT JOIN의 차이점은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-25 16:13:11719검색

What is the difference between JOIN and LEFT JOIN in MySQL?

MySQL에서 JOIN과 LEFT JOIN의 차이점 이해

SQL에서 테이블 조인을 사용하면 특정 테이블을 기반으로 여러 테이블의 데이터를 결합할 수 있습니다. 기준. 두 가지 일반적인 조인 유형은 JOIN과 LEFT JOIN입니다.

JOIN과 LEFT JOIN

JOIN은 조인 조건과 일치하는 행만 반환하며 기본적으로 레코드의 하위 집합을 생성합니다. 지정된 기준을 충족하는 것입니다. 반면에 LEFT JOIN은 왼쪽 테이블에서 모든 행을 검색하고 오른쪽 테이블에서 일치하는 행만 검색합니다. 오른쪽 테이블에서 일치 항목이 없는 행은 NULL 값으로 반환됩니다.

MySQL의 기본 조인 유형

사용자의 가정과 달리 MySQL의 기본 조인 유형은 INNER입니다. JOIN은 조인 조건을 만족하는 행만 포함한다는 의미입니다. LEFT JOIN을 사용하려면 쿼리에 이를 명시적으로 지정해야 합니다.

사용자가 제공한 다음 예를 고려하세요.

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        INNER JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID
        ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50

기본적으로 이 쿼리는 INNER JOIN을 사용합니다. 이 쿼리는 조인된 4개 모두에 해당 항목이 있는 채용정보만 반환합니다. 테이블. LEFT JOIN으로 변환하려면 다음과 같이 JOIN 키워드를 LEFT JOIN으로 변경합니다.

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        LEFT JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        LEFT JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        LEFT JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        LIMIT 50

위 내용은 MySQL에서 JOIN과 LEFT JOIN의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.