שאלות נפוצות
ציר זמן
צ'אט
פרספקטיבה

Join (SQL)

מוויקיפדיה, האנציקלופדיה החופשית

Remove ads

ב-SQL, Join היא פסקה (חלק משאילתא) לאיחוד שדות בין שתי טבלאות על ידי ערכים המשותפים לשתיהן.

תקן ה-ANSI ל-SQL מגדיר ארבעה סוגים של איחוד: פנימי (Inner), חיצוני (Outer), ימינה (Right) ושמאלה (Left). על המתכנת לכתוב פרדיקט עבור האיחוד כדי לזהות את הרשומות שיש לאחד. ברשומות בהן הפרדיקט חיובי, הרשומה מתאחדת לטבלת התוצאה בהתאם לפורמט.

איחוד פנימי (Inner Join) הוא האיחוד הנפוץ ביותר ביישומים ומשתמשים בו בדרך כלל בתור איחוד ברירת מחדל. איחוד פנימי יוצר טבלה חדשה על ידי שילוב שדות של שתי טבלאות המבוסס על פרדיקט האיחוד.

פעולת Join מקבילה במידה מסוימת למכפלה קרטזית בתורת הקבוצות - התוצאה היא תת-קבוצה מסוימת של הטבלה של "כל הזוגות הסדורים של שורה מהטבלה הראשונה ושורה מהטבלה השנייה".

Remove ads

דוגמאות

סכם
פרספקטיבה

עבור הטבלאות:

מידע נוסף LastName, DepartmentID ...

בדוגמאות הללו פרדיקט האיחוד ידרוש תמיד שוויון בין שדה DepartmentID של הטבלה הראשונה לזה של הטבלה השנייה, אחרת נקבל גם רשומות שלא מעניינות אותנו, כגון:

מידע נוסף Employee.LastName, Employee.DepartmentID ...

Inner join

מידע נוסף SELECT * FROM employee INNER JOIN department USING (DepartmentID);, Employee.LastName ...

Left outer join

התוצאה של איחוד עם left outer join (או בקיצור left join) עבור טבלאות A ו-B תכיל תמיד את כל הרשומות מהטבלה ה"שמאלית", אף אם תנאי האיחוד לא מוצא כל רשומה מתאימה בטבלה ה"ימנית" (B).

מידע נוסף SELECT * FROM employee LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;, Employee.LastName ...

Right outer join

דומה ל־Left outer join אך בכיוון ההפוך.

מידע נוסף SELECT * FROM employee RIGHT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;, Employee.LastName ...
Remove ads

קישורים חיצוניים

ויקישיתוף מדיה וקבצים בנושא Join בוויקישיתוף
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads