SQL RIGHT JOIN

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

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

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

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

בחלק מבסיסי הנתונים נקרא ה - Right Join בשם Right Outer Join.

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

על מנת להמחיש זאת טוב יותר הבה נשתמש בטבלה הבאה ששמה בבסיס הנתונים יהיה Products:

Status Price Name ID
פעיל 100 מוצר 1 123
פעיל 246 מוצר 2 124
לא פעיל 200 מוצר 3 125
כמו כן נניח שבבסיס הנתונים שלנו טבלה נוספת ששמה PSales:

Sales ID
50,000 123
20,000 124
3800 125
3409 126

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

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

התוצאה של משפט זה תהיה: {מוצר 1, 50000; מוצר 2, 20000; מוצר 3, 3800; , 3409}

יש לשים לב שהערך 3409 מטבלת Psales חזר גם הוא למרות שאין לו ערך משותף עם העמודה המקבילה בטבלת Products. הסיבה לכך היא שטבלת Psales היא הטבלה הימנית שלנו וכל השורות בה חוזרות ב - Right Join.


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