ON 조건없이 mysql JOIN을 사용하는 방법은 무엇입니까?


106

ON문 없이 조인 쿼리를 작성할 수 있습니까? 이 조인이 어떻게 다른지 LEFT JOIN, RIGHT JOIN작동합니다.


1
ON절은 테이블이 어떻게 관련되어 있는지 서버에 알려 주므로 아니요. 서로 다른 조인 유형이 모두 동일한 결과를 제공하는 경우 어떻게 든 잘못하고 있으며 일부 코드를 추가하면 문제를 발견하는 데 도움이 될 수 있습니다. 에 걸쳐 그 동안 머리에 제프 앳 우드의 블로그 다른에 2 분의 소개에 대한 유형을 가입 할 수 있습니다.
fvu

답변:


153

MySQL 문서 는이 주제를 다룹니다.

여기에 시놉시스가 있습니다. 사용하는 경우 join또는 inner joinon조건은 선택 사항입니다. 이것은 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는 해당 수준의 토론에 적합한 장소가 아닙니다.


1
크로스 조인에 대해 들어 보지 않았거나 필요한 것이 ... 오늘까지!
goneos

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.