इसे निम्नलिखित द्वारा समझाया जा सकता है
mysql> select * from table1 ;
+------+------+
| id | val |
+------+------+
| 1 | 10 |
| 2 | 30 |
| 3 | 40 |
+------+------+
3 rows in set (0.00 sec)
mysql> select * from table2 ;
+------+------+
| id | t1id |
+------+------+
| 1 | 1 |
| 2 | 2 |
+------+------+
2 rows in set (0.00 sec)
यहां table1.id <-> table2.t1id
अब जब हम left join
. करते हैं ज्वाइनिंग की के साथ और यदि लेफ्ट टेबल टेबल 1 है तो उसे टेबल 1 से सभी डेटा मिल जाएगा और टेबल 2 पर गैर-मिलान रिकॉर्ड में शून्य पर सेट हो जाएगा
mysql> select t1.* , t2.t1id from table1 t1
left join table2 t2 on t2.t1id = t1.id ;
+------+------+------+
| id | val | t1id |
+------+------+------+
| 1 | 10 | 1 |
| 2 | 30 | 2 |
| 3 | 40 | NULL |
+------+------+------+
3 rows in set (0.00 sec)
देखें कि table1.id =3 का तालिका 2 में कोई मान नहीं है, इसलिए इसे शून्य के रूप में सेट किया गया है जब आप जहां शर्त लागू करते हैं तो यह आगे फ़िल्टरिंग करेगा
mysql> select t1.* , t2.t1id from table1 t1
left join table2 t2 on t2.t1id = t1.id where t2.t1id is null;
+------+------+------+
| id | val | t1id |
+------+------+------+
| 3 | 40 | NULL |
+------+------+------+
1 row in set (0.00 sec)