답변:
MySQL 문서 는이 주제를 다룹니다.
여기에 시놉시스가 있습니다. 사용하는 경우 join
또는 inner join
의 on
조건은 선택 사항입니다. 이것은 ANSI 표준과 다르며 거의 모든 다른 데이터베이스와 다릅니다. 효과는 cross join
. 마찬가지로 표준 SQL과 다른 on
절을와 함께 사용할 수 있습니다 cross join
.
교차 조인은 카티 전 곱, 즉 첫 번째 테이블의 1 개 행과 두 번째 테이블의 1 개 행의 가능한 모든 조합을 만듭니다. 3 개의 행 ( 'a', 'b'및 'c')이있는 테이블과 4 개의 행 (예 : 1, 2, 3, 4)이있는 테이블에 대한 교차 결합은 12 개의 행을 갖습니다.
실제로 교차 조인을 수행하려면 다음을 사용하십시오 cross join
.
from A cross join B
다음보다 훨씬 낫습니다.
from A, B
과:
from A join B -- with no on clause
이 on
절은 오른쪽 또는 왼쪽 외부 조인에 필요하므로 토론이 관련이 없습니다.
여러 유형의 조인을 이해해야하는 경우 관계형 데이터베이스에 대해 연구해야합니다. Stackoverflow는 해당 수준의 토론에 적합한 장소가 아닙니다.
http://www.sitepoint.com/understanding-sql-joins-mysql-database/ 에서 몇 가지 예를 참조하십시오.
쿼리에서와 같이 'ON'대신 'USING'을 사용할 수 있습니다.
SELECT * FROM table1 LEFT JOIN table2 USING (id);
ON
절은 테이블이 어떻게 관련되어 있는지 서버에 알려 주므로 아니요. 서로 다른 조인 유형이 모두 동일한 결과를 제공하는 경우 어떻게 든 잘못하고 있으며 일부 코드를 추가하면 문제를 발견하는 데 도움이 될 수 있습니다. 에 걸쳐 그 동안 머리에 제프 앳 우드의 블로그 다른에 2 분의 소개에 대한 유형을 가입 할 수 있습니다.