חיבור טבלאות (JOIN)

למה צריך JOIN?

במסד נתונים יחסי, הנתונים מפוזרים בטבלאות נפרדות. JOIN מאפשר לחבר אותם יחד.


סוגי JOIN

סוג מה מחזיר
INNER JOIN רק התאמות בשתי הטבלאות
LEFT JOIN הכל משמאל + התאמות מימין
RIGHT JOIN הכל מימין + התאמות משמאל
FULL JOIN הכל משתי הטבלאות
CROSS JOIN כל השילובים האפשריים

1️⃣ INNER JOIN

SELECT users.name, orders.total
FROM users
INNER JOIN orders ON users.id = orders.user_id;

2️⃣ LEFT JOIN

SELECT users.name, orders.total
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

3️⃣ חיבור מספר טבלאות

SELECT o.id, u.name, p.name AS product
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN order_items oi ON o.id = oi.order_id
JOIN products p ON oi.product_id = p.id;

← שאילתות | המשך לפונקציות צבירה →

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה מחזיר INNER JOIN?

    1. את כל השורות משתי הטבלאות
    2. טבלה ריקה
    3. רק שורות שיש להן התאמה בשתי הטבלאות
    4. רק את הטבלה השמאלית
    הצגת התשובה

    תשובה ג. שורה בלי התאמה בצד השני לא תופיע.

  2. איך מקבלים את כל המשתמשים, גם כאלה בלי הזמנות?

    1. INNER JOIN
    2. CROSS JOIN
    3. users RIGHT JOIN orders בלבד
    4. users LEFT JOIN orders
    הצגת התשובה

    תשובה ד. LEFT JOIN שומר את כל השורות מהטבלה השמאלית, ומשלים NULL כשאין התאמה.