집 >데이터 베이스 >MySQL 튜토리얼 >어느 것이 더 낫습니까? 다중 JOIN 절 또는 중복 테이블 조회를 위한 ON 절의 OR 조건?
중복 조회를 위한 테이블 조인 최적화
동일한 테이블을 두 번 조인하는 경우 일반적으로 두 가지 접근 방식이 있습니다. 여러 JOIN 절을 사용하거나 ON 절의 OR 조건
다중 JOIN 절(방법 1):
귀하의 예에서 설명한 것처럼 이 방법에는 각 일치 조건에 대해 별도의 JOIN을 생성하는 작업이 포함됩니다.
SELECT t1.PhoneNumber1, t1.PhoneNumber2, t2.SomeOtherFieldForPhone1, t3.someOtherFieldForPhone2 FROM Table1 t1 INNER JOIN Table2 t2 ON t2.PhoneNumber = t1.PhoneNumber1 INNER JOIN Table2 t3 ON t3.PhoneNumber = t1.PhoneNumber2
이 접근 방식은 간단하며 다음을 보장합니다. 결과 데이터에는 필요한 모든 열이 포함됩니다.
ON 절의 OR 조건(메서드 2):
이 방법은 JOIN 조건을 하나로 결합하여 쿼리를 단순화하려고 시도합니다.
SELECT ... FROM Table1 INNER JOIN Table2 ON Table1.PhoneNumber1 = Table2.PhoneNumber OR Table1.PhoneNumber2 = Table2.PhoneNumber
그러나 이 방법을 사용하면 다음과 같은 경우 결과 집합에 중복 행이 발생할 수 있습니다. 주어진 행에 대해 두 일치 조건이 모두 충족됩니다.
최적 연습:
선호되는 방법은 여러 JOIN 절이 있는 방법 1입니다. 이는 데이터 중복을 피하면서 특정 기준에 따라 테이블을 조인하는 보다 명확하고 안정적인 방법을 제공합니다.
중복 조인 방지:
중복 조인을 피하는 것이 중요합니다. 적절한 별칭과 명명 규칙을 사용합니다. 예를 들어, 다음 쿼리는 단순화될 수 있습니다.
SELECT t.PhoneNumber1, t.PhoneNumber2, t1.SomeOtherFieldForPhone1, t1.someOtherFieldForPhone1 FROM Table1 t JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1 JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
조인된 테이블(예: t1 및 t2)에 별칭을 지정하면 중복을 줄이고 쿼리의 가독성을 높일 수 있습니다.
위 내용은 어느 것이 더 낫습니까? 다중 JOIN 절 또는 중복 테이블 조회를 위한 ON 절의 OR 조건?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!