기록을 가입하거나 취득 내부의 반대가 일치하지 않음
최대 Bossi가 작성한 기사
누가 SQL의 지식이 가입 뭔지 알아. 우리의 가이드 및 다른 기사에서는 가입하고 당신이 어떻게 데이터베이스의 다른 테이블 간의 관계를 만드는 방법을 설명했다.
가장 일반적인 요건은 케이스가 정확하게 찾아 반환이 서신을 충족 필드는 관련된 두 개 이상의 테이블 내에 모색 내부 가입 조항을 지원하는 두 개의 테이블 사이에 일치를 찾을 가입 악기에 의해 만족된다 가입 인치
(기사는 아래에 계속됩니다 ...)
활실히 덜 직관적 달리 가입 내에 일치하지 않는 필드를 식별하는 필요성이다.
자, 예를 봅시다.
당신이 전자 상거래의 데이터베이스에만 두 테이블로 구성되어 관리를 가정합시다 :
- 고객 (고객 마스터 데이터를 포함)
- 주문 (고객에 의해 주문을 포함)
첫 번째 요구 사항을 충족하려면, 물론, 아주 간단하다 :
SELECT CUSTOMER.FIRST, CUSTOMER.LAST 고객의 내부 JOIN 주문 = clienti.id ordini.id_cliente ON ASC CUSTOMER.LAST 정렬지금까지 아무 문제 없습니다.
하지만 어떻게 그 반대 결과를 얻을 때까지 우리가 할 수 있습니까?
음 ...
우선 우리는 왼쪽 조인을 가입 내적을 사용하지 않겠지만, 그러나, 왼쪽 테이블에서 결과가 어쨌든 반환 가득하지만, 일부가 아닌 일치를 발견하기 위해.
이것없이는 우리가 검색됩니다 (사용 WHERE 절) 레코드가없는 (즉, 보고서에서 찾을 수 없습니다) 그리고 NULL (은 SQL NULL의 가치의 부재를 식별하는 "특별한 가치"의 일종으로 정의로 식별 ..)
가 코드를 보자 :
SELECT CUSTOMER.FIRST, CUSTOMER.LAST 고객의 주문 가입 두고요 = clienti.id ordini.id_cliente ON NULL ordini.id_cliente 어디 있냐구 ASC CUSTOMER.LAST 정렬결과는 사실 아무것도 구입한 적이없는 고객의 이름의 목록입니다.






