ஒரு JOIN ஆனது ஒரு condition-ஐ, பொதுவாக ஒரு foreign key-ஐ, பொருத்துவதன் மூலம் இரண்டு tables-இலிருந்து rows-ஐ இணைக்கிறது. join type ஆனது மறுபக்கத்தில் பொருத்தம் இல்லாத rows-க்கு என்ன நடக்கிறது என்பதைத் தீர்மானிக்கிறது.
ஒரு JOIN ஆனது ஒரு condition-ஐ, பொதுவாக ஒரு foreign key-ஐ, பொருத்துவதன் மூலம் இரண்டு tables-இலிருந்து rows-ஐ இணைக்கிறது. 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 பல tables-ஐ உள்ளடக்குகின்றன, மேலும் தவறான join type அமைதியாக rows-ஐ கைவிடுகிறது அல்லது நகலெடுக்கிறது — நம்பத்தகுந்த முடிவுகளைத் திருப்பித் தரும் ஒரு bug. LEFT JOIN + IS NULL ஆனது "காணாமல் போன" rows-ஐ கண்டுபிடிக்கிறது என்பதையும், null பக்கத்தில் ஒரு WHERE ஆனது LEFT-ஐ ரத்து செய்கிறது என்பதையும் அறிவது, முழு வகை reporting பிழைகளையும் தடுக்கிறது.
விரிவான பதில்களுடன் கூடிய IT நேர்காணல் கேள்விகளின் நூலகம் — Junior முதல் Senior வரை.
நன்கொடை