SQL JOIN
חיבור SQL משמש לאחזור או לשלב נתונים (שורות או עמודות) משתי טבלאות או יותר בהתבסס על התנאים שהוגדרו.
טבלה 1: סדר
מספר הזמנה | מספר לקוח | OrderName | שם מוצר |
---|---|---|---|
12025 | 101 | פיטר | א ב ג |
12030 | 105 | רוברט | XYX |
12032 | 110 | ג'יימס | XYZ |
12034 | 115 | אנדרו | PQR |
12035 | 120 | מתיו | AAA |
טבלה 2: לקוח
מספר לקוח | שם לקוח | מדינה |
---|---|---|
100 | מבולגן | מקסיקו |
101 | נסיך | טייוואן |
103 | מריה פרננדס | טורקיה |
105 | יַסמִין | פריז |
110 | פאף סמור | אִינדוֹנֵזִיָה |
120 | רוקט רומא | רוּסִיָה |
עכשיו, יש לנו שני שולחנות להזמין וה צרכן . יש מספר לקוח עמודה נפוצה בשתי הטבלאות. לכן, כתוב את שאילתת SQL כדי להגדיר את הקשר הכללי לבחירת רשומות ההתאמות משתי הטבלאות.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
לאחר ביצוע האמור לעיל SQL שאילתות, הוא מייצר את הפלט הבא:
מספר הזמנה | שם לקוח | מדינה | שם מוצר |
---|---|---|---|
12025 | נסיך | טייוואן | א ב ג |
12030 | יַסמִין | פריז | XYX |
12032 | פאף סמור | אִינדוֹנֵזִיָה | XYZ |
12035 | רוקט רומא | רוּסִיָה | AAA |
סוגי SQL Join
ישנם סוגים שונים של חיבורים בשימוש ב-SQL:
- הצטרפות פנימית / הצטרפות פשוטה
- חיבור שמאל חיצוני / חיבור שמאל
- חיבור ימין חיצוני / חיבור ימני
- חיבור חיצוני מלא
- Cross Join
- הצטרפות עצמית
הצטרפות פנימית
החיבור הפנימי משמש לבחירת כל השורות או העמודות התואמות בשתי הטבלאות או כל עוד התנאי המוגדר חוקי ב-SQL.
תחביר:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
אנו יכולים לייצג את החיבור הפנימי דרך דיאגרמת Venn, באופן הבא:
טבלה 1: תלמידים
תעודת סטודנט | שם תלמיד | נושא | תעודת מורה |
---|---|---|---|
101 | אלכסנדרה | מדעי המחשב | T201 |
102 | צ'ארלס | כלכלה | T202 |
103 | תום קרוז | מדעי המחשב | T201 |
104 | אהרון פינץ' | מכשירי חשמל | T203 |
105 | זרע באג'וף | עיצוב אתרים | T204 |
106 | כריסטופר | ספרות אנגלית | T205 |
107 | דֵנִים | מעצב אופנה | T206 |
טבלה 2: מורים
תעודת מורה | שם המורה | דוא'ל למורה |
---|---|---|
T201 | מר דיוויס | [מוגן באימייל] |
T202 | גברת ג'ונאס | [מוגן באימייל] |
T201 | מר דיוויס | [מוגן באימייל] |
T204 | גברת לופז | [מוגן באימייל] |
T205 | גברת ווילי | [מוגן באימייל] |
T206 | מיסטר בין | [מוגן באימייל] |
יש לנו שני שולחנות: סטודנטים וה מורים טבלאות. בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה הצטרפות פנימית כדלהלן:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
לאחר ביצוע השאילתה, הוא מייצר את הטבלה שלהלן.
הצטרפות טבעית
זהו סוג של סוג פנימי שמחבר שתי טבלאות או יותר על סמך אותו שם עמודה ויש לו אותו סוג נתונים בשתי הטבלאות.
תחביר:
Select * from tablename1 Natural JOIN tablename_2;
יש לנו שני שולחנות: סטודנטים וה מורים טבלאות. בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה JOIN טבעי כדלהלן:
Select * from Students Natural JOIN Teachers;
לאחר ביצוע השאילתה לעיל, הוא מייצר את הטבלה הבאה.
שמאל הצטרף
ה שמאל הצטרף משמש כדי לאחזר את כל הרשומות מהטבלה השמאלית (טבלה 1) ואת השורות או העמודות המתואמות מהטבלה הימנית (טבלה 2). אם שתי הטבלאות אינן מכילות שורות או עמודות תואמות, זה מחזיר את הערך NULL.
תחביר:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
אנו יכולים גם לייצג את ההצטרפות השמאלית באמצעות דיאגרמת Venn, באופן הבא:
הערה: במסדי נתונים מסוימים, LEFT JOIN ידוע גם בשם LEFT OUTER JOIN.
טבלה 1: פרטי המוצר
מזהה מוצר | שם מוצר | כמות |
---|---|---|
Pro101 | מחשב נייד | 56000 |
Pro102 | נייד | 38000 |
Pro103 | אוזניות | 5000 |
Pro104 | טֵלֶוִיזִיָה | 25,000 |
Pro105 | אייפד | 60000 |
טבלה 2: פרטי_לקוח
מחרוזת לאובייקט json
שם לקוח | כתובת הלקוח | גיל הלקוח | מזהה מוצר |
---|---|---|---|
מרטין גופטיל | סן פרנסיסקו, ארה'ב | 26 | Pro101 |
ג'יימס | אוֹסטְרַלִיָה | 29 | Pro103 |
אמבטי וויליאמסון | ניו זילנד | 27 | Pro102 |
ג'ופרה ארצ'ר | דרום אפריקה | 24 | Pro105 |
קייט וויילי | אוֹסטְרַלִיָה | עשרים | Pro103 |
יש לנו שני שולחנות: פרטי מוצר וה פרטי לקוח טבלאות. בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה שמאל הצטרף כדלהלן:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
לאחר ביצוע השאילתה, הוא מייצר את הטבלה הבאה.
JOIN JOIN או RIGHT Outer JOIN:
ה ימינה הצטרפות משמש כדי לאחזר את כל הרשומות מהטבלה הימנית (טבלה 2) ואת השורות או העמודות המתואמות מהטבלה השמאלית (טבלה 1). אם שתי הטבלאות אינן מכילות שורות או עמודות תואמות, זה מחזיר את ה-NULL.
תחביר:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
אנו יכולים גם לייצג את ההצטרפות הימנית באמצעות דיאגרמת Venn, באופן הבא:
הערה: במסדי נתונים מסוימים, ה- RIGHT JOIN ידוע גם בשם RIGHT OUTER JOIN.
טבלה 1: פרטי המוצר
תְעוּדַת זֶהוּת | שם מוצר | כמות |
---|---|---|
Pro101 | מחשב נייד | 56000 |
Pro102 | נייד | 38000 |
Pro103 | אוזניות | 5000 |
Pro104 | טֵלֶוִיזִיָה | 25,000 |
Pro105 | אייפד | 60000 |
טבלה 2: פרטי_לקוח
שם לקוח | כתובת הלקוח | גיל הלקוח | מזהה מוצר |
---|---|---|---|
מרטין גופטיל | סן פרנסיסקו, ארה'ב | 26 | Pro101 |
ג'יימס | אוֹסטְרַלִיָה | 29 | Pro103 |
אמבטי וויליאמסון | ניו זילנד | 27 | Pro102 |
ג'ופרה ארצ'ר | דרום אפריקה | 24 | Pro105 |
אוֹת | אַנְגלִיָה | 29 | Pro107 |
מורגן | אַנְגלִיָה | עשרים | Pro108 |
יש לנו שני שולחנות: פרטי מוצר וה פרטי לקוח טבלאות. בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה ימינה הצטרף כדלהלן:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
לאחר ביצוע השאילתה, הוא מייצר את הטבלה שלהלן.
חיבור מלא או חיבור חיצוני מלא:
זהו קבוצת תוצאות שילוב של שניהם שמאל הצטרף ו ימינה הצטרף . הטבלאות המצורפות מחזירות את כל הרשומות משתי הטבלאות ואם לא נמצאו התאמות בטבלה, היא ממקמת את NULL. זה נקרא גם א הצטרפות חיצונית מלאה .
תחביר:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
אוֹ, הצטרפות חיצונית מלאה
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
אנו יכולים גם לייצג את החיבור החיצוני המלא באמצעות דיאגרמת Venn, באופן הבא:
טבלה 1: פרטי המוצר
תְעוּדַת זֶהוּת | שם מוצר | כמות |
---|---|---|
Pro101 | מחשב נייד | 56000 |
Pro102 | נייד | 38000 |
Pro103 | אוזניות | 5000 |
Pro104 | טֵלֶוִיזִיָה | 25,000 |
Pro105 | אייפד | 60000 |
טבלה 2: פרטי_לקוח
שם לקוח | כתובת הלקוח | גיל הלקוח | מזהה מוצר |
---|---|---|---|
מרטין גופטיל | סן פרנסיסקו, ארה'ב | 26 | Pro101 |
ג'יימס | אוֹסטְרַלִיָה | 29 | Pro103 |
אמבטי וויליאמסון | ניו זילנד | 27 | Pro102 |
ג'ופרה ארצ'ר | דרום אפריקה | 24 | Pro105 |
אוֹת | אַנְגלִיָה | 29 | Pro107 |
מורגן | אַנְגלִיָה | עשרים | Pro108 |
יש לנו שני שולחנות: פרטי מוצר וה פרטי לקוח טבלאות. בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה מלא הצטרפו באופן הבא:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
לאחר ביצוע השאילתה, הוא מייצר את הטבלה שלהלן.
הערה: MySQL אינו תומך במושגי FULL JOIN, כך שאנו יכולים להשתמש בסעיף UNION ALL כדי לשלב את שתי הטבלאות.
הנה התחביר עבור איחוד הכל סעיף לשילוב הטבלאות.
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID
CROSS JOIN
זה ידוע גם בשם הצטרפו קרטזי , המחזיר את המוצר הקרטזיאני של שני טבלאות מחוברות או יותר. ה CROSS JOIN מייצר טבלה הממזגת כל שורה מהטבלה הראשונה עם כל שורת טבלה שנייה. אין צורך לכלול שום תנאי ב-CROSS JOIN.
js base64 פענוח
תחביר:
Select * from table_1 cross join table_2;
אוֹ,
Select column1, column2, column3 FROM table_1, table_2;
טבלה 1: פרטי המוצר
תְעוּדַת זֶהוּת | שם מוצר | כמות |
---|---|---|
Pro101 | מחשב נייד | 56000 |
Pro102 | נייד | 38000 |
Pro103 | אוזניות | 5000 |
Pro104 | טֵלֶוִיזִיָה | 25,000 |
Pro105 | אייפד | 60000 |
טבלה 2: פרטי_לקוח
שם לקוח | כתובת הלקוח | גיל הלקוח | מזהה מוצר |
---|---|---|---|
מרטין גופטיל | סן פרנסיסקו, ארה'ב | 26 | Pro101 |
ג'יימס | אוֹסטְרַלִיָה | 29 | Pro103 |
אמבטי וויליאמסון | ניו זילנד | 27 | Pro102 |
ג'ופרה ארצ'ר | דרום אפריקה | 24 | Pro105 |
אוֹת | אַנְגלִיָה | 29 | Pro107 |
מורגן | אַנְגלִיָה | עשרים | Pro108 |
יש לנו שני שולחנות: פרטי מוצר וה פרטי לקוח טבלאות. בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה מלא הצטרפו באופן הבא:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
לאחר ביצוע השאילתה, הוא מייצר את הטבלה שלהלן.
הצטרפות עצמית
זהו SELF JOIN המשמש ליצירת טבלה על ידי הצטרפות עצמה מכיוון שהיו שני שולחנות. זה יוצר שם זמני של לפחות טבלה אחת במשפט SQL.
תחביר:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
שולחן 1 ו Tbl2 הם שני כינויי טבלה שונים עבור אותה טבלה.
טבלה 1: פרטי המוצר
תְעוּדַת זֶהוּת | שם מוצר | כמות |
---|---|---|
Pro101 | מחשב נייד | 56000 |
Pro102 | נייד | 38000 |
Pro103 | אוזניות | 5000 |
Pro104 | טֵלֶוִיזִיָה | 25,000 |
Pro105 | אייפד | 60000 |
בואו נכתוב את שאילתות SQL כדי להצטרף לטבלה באמצעות ה הצטרפות עצמית כדלהלן:
Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>