यह थोड़ा जटिल है, लेकिन मेरे पास 2 टेबल हैं। मान लीजिए कि संरचना कुछ इस प्रकार है:
*Table1*
ID
PhoneNumber1
PhoneNumber2
*Table2*
PhoneNumber
SomeOtherField
तालिकाओं को Table1.PhoneNumber1 -> Table2.PhoneNumber, या Table1.PhoneNumber2 -> Table2.PhoneNumber के आधार पर जोड़ा जा सकता है।
अब, मैं एक परिणाम प्राप्त करना चाहता हूं जिसमें PhoneNumber1, SomeOtherField शामिल है जो PhoneNumber1, PhoneNumber2 और SomeOtherField से मेल खाती है जो PhoneNumber2 से मेल खाती है।
मैंने इसे करने के 2 तरीकों के बारे में सोचा - या तो दो बार तालिका में शामिल होने से, या एक बार ओआरएस क्लॉज में शामिल होने से।
विधि 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
मैंने अभी तक यह काम नहीं किया है और मुझे यकीन नहीं है कि ऐसा करने का कोई तरीका है।
इसे पूरा करने का सबसे अच्छा तरीका क्या है? न तो रास्ता सरल या सहज लगता है ... क्या ऐसा करने के लिए अधिक सरल तरीका है? इस आवश्यकता को आम तौर पर कैसे लागू किया जाता है?