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

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



답변

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는 해당 수준의 토론에 적합한 장소가 아닙니다.


답변

http://www.sitepoint.com/understanding-sql-joins-mysql-database/ 에서 몇 가지 예를 참조하십시오.

쿼리에서와 같이 ‘ON’대신 ‘USING’을 사용할 수 있습니다.

SELECT * FROM table1 LEFT JOIN table2 USING (id);


답변