SQL FULL JOIN

במשפטי SQL שבהם מעורבת הפסוקית FULL JOIN נשתמש כאשר נרצה לאחזר מידע מטבלאות נפרדות בהתבסס על מידע המשותף לכולן. FULL JOIN יחזיר את כל השורות מהטבלה השמאלית ומהטבלה הימנית שב - Join גם אם אין בהן נתון משותף. אם יש להן נתון משותף אזי הוא יחבר בין ערכי השדות בשתי הטבלאות.

יש לזכור שבאמצעות ה - FULL JOIN בין הטבלאות אנו יוצרים טבלה חדשה, זמנית, שעליה אנו יכולים לעבוד. פעולות שנבצע על תוצאות FULL JOIN לא תשפענה על הטבלאות עצמן, שאותן "שיתפנו" באמצעות ה - JOIN.

כפי שכבר ציינו בפרק שעסק ב - JOIN ,ישנה חשיבות רבה מאוד לבצע את ה - JOIN כאשר הקשר בין הטבלאות מבוסס על המפתח הייחודי (Primary Key) של הטבלאות השותפות ל - JOIN.

המבנה הכללי של משפט LEFT JOIN יהיה:

SELECT <רשימת עמודות> FROM <1טבלה> FULL JOIN <טבלה2> ON <עמודה מטבלה 2> =
<עמודה מטבלה 1>

כאמור משפטי FULL JOIN יחזירו את כל השורות בשתי הטבלאות גם אם אין התאמה בינן לבין העמודות שעל פיהן בוצע ה - Join בין הטבלאות.

על מנת להמחיש זאת טוב יותר הבה נשתמש בטבלה הבאה ששמה בבסיס הנתונים יהיה Products:
Status Price Name ID
פעיל 100 מוצר 1 123
פעיל 246 מוצר 2 124
לא פעיל 200 מוצר 3 125
פעיל 239 מוצר9 129
כמו כן נניח שבבסיס הנתונים שלנו טבלה נוספת ששמה PSales:
Sales ID
50,000 123
20,000 124
3800 125
3409 126

בדוגמה הבאה נבקש לראות את שמות המוצרים מטבלת Products עם נתוני המכירה שלהם מטבלת Sales:

SELECT Products.Name, PSales.Sales FROM Products FULL Join PSales ON Products.ID = Sales.ID;

תוצאות השאילתה שבדוגמה תהיינה:

Name Sales
מוצר 1 50,000
מוצר 2 20,000
מוצר 3 3,800
מוצר 9 -
- 3409

שימו לב לשורות המסומנות בירוק. נתונים אלה חזרו מהשאילתה למרות שלשורות אלה אין קשר ב - Join עם שורות מקבילות בטבלה האחרת.


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש