एक JOIN किसी condition, आमतौर पर एक foreign key, को match करके दो tables की rows को जोड़ता है। join का प्रकार तय करता है कि उन rows का क्या होता है जिनका दूसरी तरफ कोई match नहीं है।
एक JOIN किसी condition, आमतौर पर एक foreign key, को match करके दो tables की rows को जोड़ता है। join का प्रकार तय करता है कि उन rows का क्या होता है जिनका दूसरी तरफ कोई match नहीं है।
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 में दाईं table को filter करना (जैसे WHERE o.total > 100) चुपचाप एक LEFT JOIN को वापस INNER JOIN में बदल देता है, क्योंकि NULL > 100 false होता है। यदि आप बिना match वाली rows रखना चाहते हैं तो ऐसी conditions को ON clause में रखें।अधिकांश वास्तविक queries कई tables में फैली होती हैं, और गलत join प्रकार चुपचाप rows को गिरा देता है या दोहरा देता है — एक ऐसा bug जो प्रतीत होने योग्य results लौटाता है। यह जानना कि LEFT JOIN + IS NULL "गायब" rows खोजता है, और कि null तरफ पर WHERE LEFT को रद्द कर देता है, reporting errors की एक पूरी श्रेणी को रोकता है।
विस्तृत उत्तरों के साथ IT इंटरव्यू प्रश्नों की एक लाइब्रेरी — जूनियर से सीनियर तक।
दान करें