एक JOIN दोन टेबलांमधील rows एका condition ला जुळवून एकत्र करते, सहसा एका foreign key ने. join चा type ठरवतो की ज्या rows ना दुसऱ्या बाजूला जुळणी नाही त्यांचे काय होते.
एक JOIN दोन टेबलांमधील rows एका condition ला जुळवून एकत्र करते, सहसा एका foreign key ने. join चा type ठरवतो की ज्या rows ना दुसऱ्या बाजूला जुळणी नाही त्यांचे काय होते.
NULL म्हणून परत येतात.-- customers(id, name) orders(id, customer_id, total)
-- INNER: only customers who have at least one order
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: every customer, even those with zero orders (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Classic use: find customers with NO orders
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- the LEFT JOIN's NULL side reveals the gap
WHERE मध्ये उजव्या टेबलावर filter करणे (उदा. WHERE o.total > 100) गुपचूप LEFT JOIN ला परत INNER JOIN मध्ये बदलते, कारण NULL > 100 हे false असते. न जुळलेल्या rows ठेवायच्या असतील तर अशा conditions ON clause मध्ये ठेवा.बहुतेक खऱ्या queries अनेक टेबलांवर पसरतात, आणि चुकीचा join type गुपचूप rows वगळतो किंवा त्यांची नक्कल करतो — असा bug जो खरे वाटणारे निकाल देतो. LEFT JOIN + IS NULL "गहाळ" rows शोधतो, आणि null बाजूवरील WHERE LEFT रद्द करतो, हे जाणल्याने reporting errors चा एक संपूर्ण वर्ग टळतो.
सविस्तर उत्तरांसह IT मुलाखत प्रश्नांचे ग्रंथालय — Junior पासून Senior पर्यंत.
देणगी द्या