MySQL JOIN과 LEFT JOIN의 차이점 이해
MySQL JOIN은 두 개 이상의 테이블 행을 결합하는 기본 작업입니다. 공통 열. 기본적으로 MySQL은 조인된 모든 테이블에서 일치하는 행만 반환하는 INNER JOIN을 수행합니다.
그러나 사용자가 명시적인 조인 유형이 없으면 LEFT JOIN을 의미한다고 가정하면 일반적인 오해가 발생합니다. 이것은 사실이 아닙니다. 기본 조인 유형은 INNER JOIN으로 유지됩니다.
LEFT JOIN과 INNER 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을 실행하여 조인된 모든 테이블에서 일치하는 값이 있는 행만 반환합니다.
이제 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") LEFT JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50
LEFT 이 쿼리의 JOIN은 왼쪽 테이블("Jobs")의 모든 행과 오른쪽 테이블의 일치하는 행만 반환합니다. 즉, 올바른 테이블에 일치하는 행이 없더라도 "작업"의 행이 결과에 계속 포함됩니다.
조인의 시각적 표현
다음은 INNER JOIN 및 LEFT JOIN의 시각적 표현입니다.
INNER JOIN:
TABLE 1 TABLE 2 +-----------+------+ +-----------+------+ | Column 1 | KEY | | Column 3 | KEY | +-----------+------+ +-----------+------+ | ROW 1.1 | 1 | | ROW 2.1 | 1 | | ROW 1.2 | 2 | | | | | | | | ROW 2.2 | 2 | +-----------+------+ +-----------+------+ Result: | Column 1 | Column 3 | +-----------+-----------+ | ROW 1.1 | ROW 2.1 | | ROW 1.2 | ROW 2.2 |
LEFT JOIN:
TABLE 1 TABLE 2 +-----------+------+ +-----------+------+ | Column 1 | KEY | | Column 3 | KEY | +-----------+------+ +-----------+------+ | ROW 1.1 | 1 | | ROW 2.1 | 1 | | ROW 1.2 | 2 | | | | | ROW 1.3 | 3 | | | | +-----------+------+ +-----------+------+ Result: | Column 1 | Column 3 | +-----------+-----------+ | ROW 1.1 | ROW 2.1 | | ROW 1.2 | NULL | | ROW 1.3 | NULL |
위 내용은 MySQL JOIN과 LEFT JOIN의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!