Bu biraz karmaşık ama 2 masam var. Yapının şöyle bir şey olduğunu varsayalım:
*Table1*
ID
PhoneNumber1
PhoneNumber2
*Table2*
PhoneNumber
SomeOtherField
Tablolar, Table1.PhoneNumber1 -> Table2.PhoneNumber veya Table1.PhoneNumber2 -> Table2.PhoneNumber temelinde birleştirilebilir.
Şimdi, PhoneNumber1, SomeOtherField içeren PhoneNumber1, PhoneNumber2 ve PhoneNumber2'ye karşılık gelen SomeOtherField içeren bir sonuç kümesi almak istiyorum.
Bunu yapmanın 2 yolunu düşündüm - ya masaya iki kez katılarak ya da ON cümlesindeki OR ile bir kez katılarak.
Yöntem 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
Bu işe yarıyor gibi görünüyor.
Yöntem 2 :
Bir şekilde buna benzeyen bir sorguya sahip olmak -
SELECT ...
FROM Table1
INNER JOIN Table2
ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
Table1.PhoneNumber2 = Table2.PhoneNumber
Bunu henüz çalıştırmadım ve bunu yapmanın bir yolu olup olmadığından emin değilim.
Bunu başarmanın en iyi yolu nedir? Her iki yol da basit ya da sezgisel görünmüyor ... Bunu yapmanın daha basit bir yolu var mı? Bu gereksinim genel olarak nasıl uygulanır?