החיבור השמאלי ב-MySQL משמש לשאילתות על רשומות ממספר טבלאות. משפט זה דומה לסעיף Inner Join שניתן להשתמש בו עם משפט SELECT מיד אחרי מילת המפתח FROM. כאשר אנו משתמשים בסעיף Left Join, הוא יחזיר את כל הרשומות מהטבלה הראשונה (צד שמאל), אפילו לא נמצאו רשומות תואמות מהטבלה השנייה (צד ימין). אם הוא לא ימצא שום רשומת התאמות מהטבלה בצד ימין, אז מחזירה null.
במילים אחרות, הסעיף Left Join מחזיר את כל השורות מהטבלה השמאלית ואת הרשומות התואמות מהטבלה הימנית או מחזיר Null אם לא נמצאה רשומה תואמת. ניתן לקרוא להצטרפות זו גם א חיבור חיצוני שמאלי סָעִיף. אז, Outer היא מילת המפתח האופציונלית לשימוש עם Left Join.
אנו יכולים להבין זאת באמצעות הייצוג החזותי הבא שבו Left Joins מחזירה את כל הרשומות מהטבלה השמאלית ורק את הרשומות התואמות מהטבלה בצד ימין:
MySQL LEFT JOIN תחביר
התחביר הבא מסביר את הסעיף Left Join כדי להצטרף לשתי הטבלאות או יותר:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
בתחביר לעיל, שולחן 1 הוא הטבלה השמאלית, ו שולחן 2 הוא השולחן הימני. סעיף זה מחזיר את כל הרשומות מטבלה 1 ואת הרשומות המתואמות מטבלה 2 בהתבסס על הרשומות שצוינו תנאי הצטרפות .
בדיקות רגרסיה בבדיקות תוכנה
MySQL LEFT JOIN דוגמה
הבה ניקח כמה דוגמאות כדי להבין את פעולתו של סעיף 'הצטרפות שמאלית' או 'הצטרפות שמאלית':
סעיף LEFT JOIN לחיבור שני טבלאות
כאן, אנחנו הולכים ליצור שתי טבלאות ' של לקוחות ו' הזמנות' שמכיל את הנתונים הבאים:
טבלה: לקוחות
טבלה: הזמנות
כדי לבחור רשומות משתי הטבלאות, בצע את השאילתה הבאה:
האלגוריתם של 'prim'
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
לאחר ביצוע מוצלח של השאילתה, היא תיתן את הפלט הבא:
MySQL LEFT JOIN עם סעיף השימוש
ללקוחות הטבלה ולהזמנות יש אותו שם עמודה, שהוא customer_id. במקרה זה, ניתן להשתמש ב-MySQL Left Join גם עם סעיף USING כדי לגשת לרשומות. ההצהרה הבאה מחזירה את מזהה הלקוח, שם הלקוח, העיסוק, המחיר והתאריך תוך שימוש בסעיף Left Join עם מילת המפתח USING.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
ההצהרה לעיל תיתן את הפלט הבא:
MySQL שמאל להצטרף לקבוצה לפי סעיף
ניתן להשתמש ב-Left Join גם עם סעיף GROUP BY. ההצהרה הבאה מחזירה את מזהה הלקוח, שם הלקוח, ההסמכה, המחיר והתאריך תוך שימוש בסעיף Left Join עם סעיף GROUP BY.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
ההצהרה לעיל תיתן את הפלט הבא:
שמאל הצטרף עם סעיף WHERE
הסעיף WHERE משמש להחזרת לְסַנֵן תוצאה מהטבלה. הדוגמה הבאה ממחישה זאת עם סעיף Left Join:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
הצהרה זו נותנת את התוצאה שלהלן:
MySQL LFT JOIN למספר טבלאות
כבר יצרנו שתי טבלאות בשם ' של לקוחות ו' הזמנות' . תנו לנו ליצור עוד טבלה אחת ולקרוא לה בשם ' אנשי קשר' שמכילים את הנתונים הבאים:
בצע את ההצהרה הבאה כדי להצטרף לשלושת לקוחות השולחן, ההזמנות ואנשי הקשר:
SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income;
לאחר ביצוע מוצלח של השאילתה לעיל, הוא ייתן את הפלט הבא:
הצהרת java
שימוש בסעיף LEFT JOIN כדי לקבל רשומות ללא תחרות
הסעיף LEFT JOIN שימושי גם במקרה כזה כאשר אנו רוצים לקבל רשומות בטבלה שאינן מכילות שורות תואמות של נתונים מטבלה אחרת.
אנו יכולים להבין זאת באמצעות הדוגמה הבאה המשתמשת בסעיף LEFT JOIN כדי למצוא לקוח שאין לו מספר טלפון סלולרי:
תור עדיפות
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
ההצהרה לעיל מחזירה את הפלט הבא:
ההבדל בין סעיף WHERE ו-ON ב-MySQL LEFT JOIN
ב-LEFT Join, התנאי WHERE ו-ON נותן תוצאה שונה. אנו יכולים לראות את השאילתות הבאות כדי להבין את ההבדלים ביניהן:
סעיף איפה
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
זה ייתן את הפלט הבא שמחזיר:
סעיף ON
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
זה ייתן את הפלט הבא: