प्रदर्शन-वार, वे समान हैं (और समान योजनाएँ बनाते हैं)
तार्किक रूप से, यदि आप INNER JOIN
. को प्रतिस्थापित करते हैं, तो आपको उस ऑपरेशन को करना चाहिए जो अभी भी समझ में आता है एक LEFT JOIN
के साथ ।
आपके मामले में यह इस तरह दिखेगा:
SELECT *
FROM TableA a
LEFT JOIN
TableXRef x
ON x.TableAID = a.ID
AND a.ID = 1
LEFT JOIN
TableB b
ON x.TableBID = b.ID
या यह:
SELECT *
FROM TableA a
LEFT JOIN
TableXRef x
ON x.TableAID = a.ID
LEFT JOIN
TableB b
ON b.id = x.TableBID
WHERE a.id = 1
पिछली क्वेरी a.id
. के लिए कोई वास्तविक मिलान नहीं लौटाएगी 1
. के अलावा , इसलिए बाद वाला सिंटैक्स (WHERE
. के साथ) ) तार्किक रूप से अधिक सुसंगत है।