문제:
열이 일치하는 두 테이블을 조인할 때 어떻게 두 열에 해당하는 데이터를 효율적으로 검색할 수 있습니까? 동시에?
방법 1: 두 번 조인
위의 예에서 볼 수 있듯이 동일한 테이블을 두 번 조인하면 일치하는 각 열을 기준으로 별도의 데이터 검색이 가능합니다.
SELECT t.PhoneNumber1, t.PhoneNumber2, t1.SomeOtherFieldForPhone1, t2.someOtherFieldForPhone2 FROM Table1 t JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1 JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
방법 2: OR in ON 절
대체 접근 방식은 기능적으로 입증되지는 않았지만 ON 절에서 OR를 사용하여 일치하는 여러 열에 조인을 시도합니다.
SELECT ... FROM Table1 INNER JOIN Table2 ON Table1.PhoneNumber1 = Table2.PhoneNumber OR Table1.PhoneNumber2 = Table2.PhoneNumber
모범 사례 :
가장 좋은 솔루션으로는 방법 1을 권장합니다. 복잡한 OR 절에 의존하지 않고 일치하는 여러 열에 해당하는 데이터를 검색하는 간단하고 명확한 방법입니다.
설계 개선을 위한 대안:
두 방법 모두 원하는 결과를 얻을 수 있습니다. , 전화번호와 같은 자연 키를 기반으로 한 테이블 간 조인에 의존하지 않도록 데이터베이스 디자인 모범 사례를 고려하는 것이 중요합니다. 자연 키는 자주 변경되어 데이터 무결성에 잠재적인 문제가 발생할 수 있습니다.
위 내용은 동일한 테이블에 두 번 조인: 언제, 어떻게 모범 사례가 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!