집 >데이터 베이스 >MySQL 튜토리얼 >MySQL JOIN: ON과 USING을 언제 사용해야 합니까?
MySQL에서 테이블을 조인할 때 ON 또는 USING 키워드를 사용할 수 있습니다. 언뜻 보면 USING이 ON에 비해 더 편리한 구문처럼 보일 수 있습니다. 그러나 각 키워드를 특정 시나리오에 적합하게 만드는 미묘한 차이가 있습니다.
ON은 다음을 포함한 다양한 조건에서 테이블을 조인할 수 있으므로 더 큰 유연성을 제공합니다.
예를 들어 두 열 간의 비교나 표현식을 기반으로 테이블을 조인할 수 있습니다.
SELECT * FROM world.City JOIN world.Country ON (City.CountryCode = Country.Code) WHERE ...
USING은 동일한 이름을 가진 열에서 정확히 일치하는 항목을 공유하는 테이블을 조인하기 위해 특별히 설계되었습니다. ON 절을 사용하는 대신 공통 열 이름을 지정할 수 있도록 하여 구문을 단순화합니다.
SELECT ... FROM film JOIN film_actor USING (film_id) WHERE ...
USING의 한 가지 중요한 이점은 SELECT 절에서 조인 열을 정규화할 필요가 없다는 것입니다. :
SELECT film.title, film_id -- No prefix for film_id required FROM film JOIN film_actor USING (film_id) WHERE ...
두 키워드의 차이점을 설명하려면 다음을 고려하세요. 예:
ON 예:
SELECT film.title, film.film_id -- Prefixing film.film_id required FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) WHERE ...
이 예에서는 조인할 열이 정확히 동일하지 않기 때문에 ON이 사용됩니다(film.film_id 대 film_actor.film_id). 모호함을 피하기 위해 SELECT 절에 film.film_id 접두사를 붙여야 합니다.
USING의 예:
SELECT * FROM t JOIN t2 USING (i);
이 예에서는 조인 열 때문에 USING이 사용됩니다. (i)는 두 테이블 모두에서 동일하며 이름도 같습니다. 구문을 단순화하고 결과 집합에 공통 열을 자동으로 한 번 포함합니다.
USING이 더 편리한 구문으로 보일 수 있지만 ON은 조인 조건 측면에서 더 큰 유연성을 제공하고 다음을 허용합니다. 더 복잡한 쿼리의 경우. 이름이 다른 컬럼을 비교하거나 복잡한 조건을 적용할 경우 ON을 선택하세요. 동일한 열 이름을 가진 테이블을 조인할 때, 특히 조인 열이 결과 집합의 일부인 경우 USING을 사용하세요.
위 내용은 MySQL JOIN: ON과 USING을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!