שילוב רשומות משתי טבלאות כאשר קיימים ערכים תואמים בשדה משותף.
תחביר
FROM table1 INNER JOIN table2 ON table1.field1compopr table2.field2
פעולת INNER JOIN כוללת חלקים אלה:
חלק |
תיאור |
table1, table2 |
שמות הטבלאות שמתוכן משולבות רשומות. |
field1, field2 |
שמות השדות המצורפים. אם השדות אינם מספריים, הם צריכים להיות בעלי סוג נתונים זהה ולהכיל נתונים מאותו סוג, אך הם אינם חייבים להיות בעלי שם זהה. |
compopr |
כל אופרטור השוואה יחסי: "=", "<", ">", "<=", ">=" או "<>". |
הערות
באפשרותך להשתמש בפעולת INNER JOIN בכל משפט FROM. זהו סוג הצירוף הנפוץ ביותר. צירופים פנימיים משלבים רשומות משתי טבלאות כאשר קיימים ערכים תואמים בשדה משותף לשתי הטבלאות.
ניתן להשתמש ב- INNER JOIN עם הטבלאות 'מחלקות' ו'עובדים' כדי לבחור בכל העובדים בכל מחלקה. לעומת זאת, כדי לבחור בכל המחלקות (גם אם לחלקן לא מוקצים עובדים) או בכל העובדים (גם אם חלקם לא מוקצים למחלקה), ניתן להשתמש בפעולת LEFT JOIN או RIGHT JOIN כדי ליצור צירוף חיצוני.
אם תנסה לצרף שדות המכילים נתוני אובייקט 'תזכיר' או אובייקט OLE, תתרחש שגיאה.
באפשרותך לצרף כל שני שדות מספריים מאותו סוג. לדוגמה, באפשרותך לצרף שדות AutoNumber ו- Long משום שהם מאותו סוג. עם זאת, לא ניתן לצרף סוגי Single ו- Double של שדות.
הדוגמה הבאה מציגה כיצד באפשרותך לצרף את הטבלאות 'קטגוריות' ו'מוצרים' בשדה CategoryID:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
בדוגמה הקודמת, CategoryID הוא השדה המצורף, אך הוא אינו נכלל בפלט השאילתה מאחר שאינו נכלל במשפט SELECT. כדי לכלול את השדה המצורף, כלול את שם השדה במשפט SELECT — במקרה זה, Categories.CategoryID.
ניתן גם לקשר מספר משפטי ON במשפט JOIN, באמצעות התחביר הבא:
SELECT fields
FROM table1 INNER JOIN table2 ON table1.field1compoprtable2.field1 AND ON table1.field2compoprtable2.field2) OR ON table1.field3compoprtable2.field3)];באפשרותך גם לקנן משפטי JOIN באמצעות התחביר הבא:
SELECT fields
FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON table3.field3compoprtablex.fieldx)] ON table2.field2compoprtable3.field3) ON table1.field1compoprtable2.field2;ניתן לקנן LEFT JOIN או RIGHT JOIN בתוך INNER JOIN אך לא ניתן לקנן INNER JOIN בתוך LEFT JOIN או RIGHT JOIN.