ఒక JOIN, ఒక condition ను (సాధారణంగా ఒక foreign key) match చేయడం ద్వారా రెండు tables నుండి rows ను కలుపుతుంది. మరో వైపు match లేని rows కు ఏమి జరుగుతుందో join type నిర్ణయిస్తుంది.
ఒక JOIN, ఒక condition ను (సాధారణంగా ఒక foreign key) match చేయడం ద్వారా రెండు tables నుండి rows ను కలుపుతుంది. మరో వైపు match లేని rows కు ఏమి జరుగుతుందో join type నిర్ణయిస్తుంది.
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 లో right table ను filter చేయడం (ఉదా. WHERE o.total > 100) నిశ్శబ్దంగా LEFT JOIN ను తిరిగి INNER JOIN గా మారుస్తుంది, ఎందుకంటే NULL > 100 అనేది false. match కాని rows ను ఉంచాలనుకుంటే అలాంటి conditions ను ON clause లో పెట్టండి.చాలా వాస్తవ queries బహుళ tables లో విస్తరిస్తాయి, మరియు తప్పు join type నిశ్శబ్దంగా rows ను వదిలేస్తుంది లేదా duplicate చేస్తుంది — ఇది ఆమోదయోగ్యంగా కనిపించే ఫలితాలను తిరిగి ఇచ్చే bug. LEFT JOIN + IS NULL "missing" rows ను కనుగొంటుందని, మరియు null వైపు ఒక WHERE LEFT ను రద్దు చేస్తుందని తెలుసుకోవడం, reporting errors యొక్క మొత్తం తరగతిని నివారిస్తుంది.
జూనియర్ నుండి సీనియర్ వరకు వివరణాత్మక సమాధానాలతో IT ఇంటర్వ్యూ ప్రశ్నల లైబ్రరీ.
విరాళం