이것은 약간 복잡하지만 2 개의 테이블이 있습니다. 구조가 다음과 같다고 가정 해 봅시다.
*Table1*
ID
PhoneNumber1
PhoneNumber2
*Table2*
PhoneNumber
SomeOtherField
Table1.PhoneNumber1-> Table2.PhoneNumber 또는 Table1.PhoneNumber2-> Table2.PhoneNumber를 기준으로 테이블을 조인 할 수 있습니다.
이제 PhoneNumber1, PhoneNumber1에 해당하는 SomeOtherField, PhoneNumber2에 해당하는 SomeOtherField가 포함 된 결과 집합을 가져오고 싶습니다.
테이블을 두 번 조인하거나 ON 절에서 OR로 한 번 조인하는 두 가지 방법을 생각했습니다.
방법 1 :
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
이것은 작동하는 것 같습니다.
방법 2 :
어떻게 든 다음과 같은 쿼리를 사용하려면-
SELECT ...
FROM Table1
INNER JOIN Table2
ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
Table1.PhoneNumber2 = Table2.PhoneNumber
나는 이것을 아직 작동시키지 않았고 그것을 할 방법이 있는지 확실하지 않습니다.
이를 수행하는 가장 좋은 방법은 무엇입니까? 어느 쪽도 간단하거나 직관적이지 않습니다 ...이 작업을 수행하는 더 간단한 방법이 있습니까? 이 요구 사항은 일반적으로 어떻게 구현됩니까?