انضمام SQL
يتم استخدام SQL Join لجلب أو دمج البيانات (صفوف أو أعمدة) من جدولين أو أكثر بناءً على الشروط المحددة.
الجدول 1: النظام
رقم التعريف الخاص بالطلب | هوية الزبون | اسم الطلب | اسم المنتج |
---|---|---|---|
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
هناك أنواع مختلفة من الصلات المستخدمة في SQL:
- الانضمام الداخلي / الانضمام البسيط
- الانضمام الخارجي الأيسر / الانضمام الأيسر
- الانضمام الخارجي الأيمن / الانضمام الأيمن
- الانضمام الخارجي الكامل
- تقاطع الانضمام
- الانضمام الذاتي
صلة داخلية
يتم استخدام الصلة الداخلية لتحديد كافة الصفوف أو الأعمدة المطابقة في كلا الجدولين أو طالما أن الشرط المحدد صالح في 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 للانضمام إلى الجدول باستخدام ملف الانضمام الطبيعي على النحو التالي:
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: تفاصيل_المنتج
معرف المنتج | اسم المنتج | كمية |
---|---|---|
برو101 | حاسوب محمول | 56000 |
برو102 | متحرك | 38000 |
برو103 | سماعات الرأس | 5000 |
برو104 | التلفاز | 25000 |
برو105 | اى باد | 60000 |
الجدول 2: تفاصيل_العملاء
اناكوندا مقابل ثعبان الثعبان
اسم الزبون | عنوان العميل | CustomerAge | معرف المنتج |
---|---|---|---|
مارتن جوبتيل | سان فرانسيسكو، الولايات المتحدة الأمريكية | 26 | برو101 |
جوامع | أستراليا | 29 | برو103 |
أمباتي ويليامسون | نيوزيلندا | 27 | برو102 |
جوفرا آرتشر | جنوب أفريقيا | 24 | برو105 |
كيت وايلي | أستراليا | عشرين | برو103 |
لدينا جدولين: تفاصيل المنتج و ال تفاصيل العميل الجداول. لنكتب استعلامات SQL للانضمام إلى الجدول باستخدام ملف الانضمام الأيسر على النحو التالي:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
وبعد تنفيذ الاستعلام يظهر الجدول التالي.
الانضمام الأيمن أو الانضمام الخارجي الأيمن:
ال الانضمام الصحيح يتم استخدامه لاسترداد كافة السجلات من الجدول الأيمن (الجدول 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، كما يلي:
ملاحظة: في بعض قواعد البيانات، تُعرف الصلة اليمنى أيضًا باسم الصلة الخارجية اليمنى.
الجدول 1: تفاصيل_المنتج
بطاقة تعريف | اسم المنتج | كمية |
---|---|---|
برو101 | حاسوب محمول | 56000 |
برو102 | متحرك | 38000 |
برو103 | سماعات الرأس | 5000 |
برو104 | التلفاز | 25000 |
برو105 | اى باد | 60000 |
الجدول 2: تفاصيل_العملاء
اسم الزبون | عنوان العميل | CustomerAge | معرف المنتج |
---|---|---|---|
مارتن جوبتيل | سان فرانسيسكو، الولايات المتحدة الأمريكية | 26 | برو101 |
جوامع | أستراليا | 29 | برو103 |
أمباتي ويليامسون | نيوزيلندا | 27 | برو102 |
جوفرا آرتشر | جنوب أفريقيا | 24 | برو105 |
فأل | إنكلترا | 29 | برو107 |
مورغان | إنكلترا | عشرين | برو108 |
لدينا جدولين: تفاصيل المنتج و ال تفاصيل العميل الجداول. لنكتب استعلامات 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: تفاصيل_المنتج
بطاقة تعريف | اسم المنتج | كمية |
---|---|---|
برو101 | حاسوب محمول | 56000 |
برو102 | متحرك | 38000 |
برو103 | سماعات الرأس | 5000 |
برو104 | التلفاز | 25000 |
برو105 | اى باد | 60000 |
الجدول 2: تفاصيل_العملاء
اسم الزبون | عنوان العميل | CustomerAge | معرف المنتج |
---|---|---|---|
مارتن جوبتيل | سان فرانسيسكو، الولايات المتحدة الأمريكية | 26 | برو101 |
جوامع | أستراليا | 29 | برو103 |
أمباتي ويليامسون | نيوزيلندا | 27 | برو102 |
جوفرا آرتشر | جنوب أفريقيا | 24 | برو105 |
فأل | إنكلترا | 29 | برو107 |
مورغان | إنكلترا | عشرين | برو108 |
لدينا جدولين: تفاصيل المنتج و ال تفاصيل العميل الجداول. لنكتب استعلامات 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.
بناء الجملة:
Select * from table_1 cross join table_2;
أو،
Select column1, column2, column3 FROM table_1, table_2;
الجدول 1: تفاصيل_المنتج
بطاقة تعريف | اسم المنتج | كمية |
---|---|---|
برو101 | حاسوب محمول | 56000 |
برو102 | متحرك | 38000 |
برو103 | سماعات الرأس | 5000 |
برو104 | التلفاز | 25000 |
برو105 | اى باد | 60000 |
الجدول 2: تفاصيل_العملاء
اسم الزبون | عنوان العميل | CustomerAge | معرف المنتج |
---|---|---|---|
مارتن جوبتيل | سان فرانسيسكو، الولايات المتحدة الأمريكية | 26 | برو101 |
جوامع | أستراليا | 29 | برو103 |
أمباتي ويليامسون | نيوزيلندا | 27 | برو102 |
جوفرا آرتشر | جنوب أفريقيا | 24 | برو105 |
فأل | إنكلترا | 29 | برو107 |
مورغان | إنكلترا | عشرين | برو108 |
لدينا جدولين: تفاصيل المنتج و ال تفاصيل العميل الجداول. لنكتب استعلامات SQL للانضمام إلى الجدول باستخدام ملف ممتلىء انضم على النحو التالي:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
وبعد تنفيذ الاستعلام يظهر الجدول أدناه.
الانضمام الذاتي
إنها صلة ذاتية تستخدم لإنشاء جدول من خلال ضم نفسه حيث كان هناك جدولين. يقوم بإجراء تسمية مؤقتة لجدول واحد على الأقل في عبارة SQL.
بناء الجملة:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
الجدول 1 و Tbl2 هناك اسمان مستعاران مختلفان للجدول لنفس الجدول.
الجدول 1: تفاصيل_المنتج
بطاقة تعريف | اسم المنتج | كمية |
---|---|---|
برو101 | حاسوب محمول | 56000 |
برو102 | متحرك | 38000 |
برو103 | سماعات الرأس | 5000 |
برو104 | التلفاز | 25000 |
برو105 | اى باد | 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;>