>  기사  >  데이터 베이스  >  SQL에서 조인과 위치의 차이점

SQL에서 조인과 위치의 차이점

(*-*)浩
(*-*)浩원래의
2019-05-10 16:58:387418검색

조인 키워드의 기능은 특정 조건에 따라 여러 테이블을 조인하여 여러 테이블에서 데이터를 얻을 수 있도록 하는 것입니다.

추천 과정: MySQL 튜토리얼.

SQL에서 조인과 위치의 차이점

on 조건과 where 조건을 사용하여 조인을 수행할 수 있습니다. 여기서는 주로 둘 사이의 차이점에 대해 설명합니다.

다음과 같이 테스트용으로 두 개의 간단한 테이블을 만들고 데이터를 추가합니다. 테이블 이름은 id_name이고 다른 테이블 이름은 id_age

먼저 조건을 추가하지 않고 결과를 살펴보세요. - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id

get

1. 여기서는 예시로 Join 조건을 추가할 곳을 먼저 실행합니다. - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id where t2.age ='22'

결과는 다음과 같습니다

왼쪽 조인 작업이 완료된 후 where 조건을 얻을 수 있습니다. filtering

2. plus 조건으로 실행한 경우 - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id and t2.age ='22'

결과는 다음과 같습니다

on 조건은 Left Join 전 조건을 필터링한 후 Two table Join을 통해 얻을 수 있습니다. 연산

여기에서는 내부 조인의 특성으로 인해 이 두 조건으로 얻은 결과는 동일하지만 내부 프로세스는 이전 작업과 비교하여 여전히 다릅니다

. on 조건에 따라 다중 테이블 조인 작업을 수행하고 임시 테이블을 생성한 다음 where

어느 쪽 또는 어디가 더 효율적인지 필터링합니다. 내부 조인인 경우 on 및 생성 위치는 다음과 같습니다. 동일하지만 어느 쪽이 더 효율적이고 빠른지는 알 수 없습니다. 외부 조인(왼쪽 또는 오른쪽)이 있으면 차이가 있을 것입니다. 왜냐하면 on이 먼저 적용되고 일부 데이터는 미리 필터링되었기 때문입니다. where는 나중에 적용됩니다.
Comprehensive Where보다 먼저 실행되기 때문에 넣는 것이 더 효율적인 것 같습니다.
먼저 데카르트 곱을 한 다음 조인이 내부이면 필터링합니다. 계속해서 아래로 조인하면 on으로 필터링된 왼쪽 기본 테이블의 데이터가 다시 추가되고

on이 최종 필터링이 아니기 때문입니다. 나중에 다시 추가될 수 있으며 최종 필터링은 어디에 있습니다.

외부 조인(왼쪽, 오른쪽)을 사용할 때에만 내부 조인을 사용하는 경우 이후에는 동일하기 때문에 on과 where 사이에 차이가 있습니다. on은 그 사이에 다른 단계가 없습니다.

위 내용은 SQL에서 조인과 위치의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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