ON
문 없이 조인 쿼리를 작성할 수 있습니까? 이 조인이 어떻게 다른지 LEFT JOIN, RIGHT JOIN
작동합니다.
답변
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);