वास्तव में नहीं, क्योंकि राइट जॉइन और लेफ्ट जॉइन सममित हैं। वह है:
A LEFT JOIN B = B RIGHT JOIN A
राइट जॉइन सिर्फ सिंटैक्टिक शुगर है। ऑप्टिमाइज़र बाएं जॉइन में राइट जॉइन को फिर से लिख सकता है:
mysql> explain extended select * from t right join t t2 using (c1)\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t2
type: index
possible_keys: NULL
key: c2
key_len: 5
ref: NULL
rows: 4201
filtered: 100.00
Extra: Using index
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: t
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: test.t2.c1
rows: 1
filtered: 100.00
Extra:
2 rows in set, 1 warning (0.00 sec)
ध्यान दें कि ऑप्टिमाइज़र में LEFT JOIN फिर से लिखना है (टेबल्स की अदला-बदली की जाती है):
mysql> show warnings\G
*************************** 1. row ***************************
Level: Note
Code: 1003
Message: select `test`.`t2`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2`,`test`.`t`.`c2` AS
`c2` from `test`.`t` `t2` left join `test`.`t` on((`test`.`t`.`c1` = `test`.`t2`.`c1`)) where 1
1 row in set (0.00 sec)
ध्यान दें कि (ए राइट जॉइन बी! =ए लेफ्ट जॉइन बी) जब तक (ए इनर जॉइन बी =ए लेफ्ट जॉइन बी)। ऐसा इसलिए है क्योंकि ए राइट जॉइन बी, ए लेफ्ट जॉइन बी के साथ सममित नहीं है (यह बी लेफ्ट जॉइन ए के साथ सममित है)।
आपके मामले में, A RIGHT JOIN B, A LEFT JOIN B के समान होगा, जब तक कि आपके द्वारा शामिल किए जा रहे कॉलम में NULL मान न हों। यदि NULL मान हैं, तो A LEFT JOIN B, A RIGHT JOIN B के समान नहीं होगा। यदि आप संबंधित समाचार समूह (या इसके विपरीत) को जोड़े बिना नए लेख जोड़ते हैं तो परिणाम भी बदल जाएंगे।