INNER JOIN מול LEFT JOIN
"מה ההבדל בין INNER JOIN לבין LEFT JOIN?" היא כנראה שאלת ה־SQL הנפוצה ביותר בראיונות. בשיעור הזה נחבר סוף סוף את שתי הטבלאות של החנות: נראה איך customer_id בהזמנה מצביע על לקוח, מה כל סוג JOIN מחזיר, למה Omer נעלם באחד ומופיע עם NULL בשני, ואיך למצוא לקוחות שלא הזמינו אף פעם.
INNER JOIN משאיר רק זוגות שמצאו התאמה. LEFT JOIN משאיר את כל השורות מהטבלה השמאלית וממלא NULL במקום שאין התאמה.
- מפתח זר
- עמודה שהערך שלה הוא מפתח ראשי בטבלה אחרת, כמו orders.customer_id שמצביע על customers.id.
- INNER JOIN
- צירוף שמחזיר רק זוגות שורות משתי הטבלאות שעומדים בתנאי ON.
- LEFT JOIN
- צירוף שמחזיר את כל השורות מהטבלה השמאלית, ו־NULL בעמודות של הטבלה הימנית כשאין התאמה.
- תנאי ON
- התנאי שקובע אילו שורות משתי הטבלאות שייכות זו לזו.