SQL للمبتدئين .....18_إستخدام التعليمة INNER JOIN

إرسال موضوع جديد   إرسال مساهمة في موضوع

اذهب الى الأسفل

SQL للمبتدئين .....18_إستخدام التعليمة INNER JOIN

مُساهمة من طرف م/موسي في الثلاثاء نوفمبر 20, 2018 7:24 am

يتم استخدام جملة JOIN لدمج صفوف من جدولين أو أكثر ، استنادًا إلى عمود مرتبط أو مشترك بينهما....ولها عدة انواع مختلفة فى الاستخدام 


فيما يلي الأنواع المختلفة للتعليمة أو الجملة JOINs في لغة الاستعلامات الهيكلية SQL:


  1. INNER JOIN: إرجاع السجلات التي تحتوي على قيم متطابقة في كلا الجدولين
  2. LEFT JOIN: إرجاع كافة السجلات من الجدول الأيسر ، والسجلات المتطابقة من الجدول الصحيح
  3. RIGHT JOIN: إرجاع كافة السجلات من الجدول الصحيح ، والسجلات المتطابقة من الجدول الأيسر
  4. FULL JOIN: إرجاع كافة السجلات عندما يكون هناك تطابق في أي من الجدول الأيسر أو الأيمن


فى درس اليوم سنتحدث على النوع الاول INNER JOIN  وفى دروس لاحقة سوف نتحدث عن الانواع الاخري بالتفصيل

1_التعليمة INNER JOIN 

تحدد التعليمة INNER JOIN السجلات التي تحتوي على قيم متطابقة في كلا الجدولين.


ويتم بناء الجملة على النحو التالى :
الكود:
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

حيث أن :

table1 وtable2 :أسماء الجداول التي يتم ضم السجلات منها.

table1.column_name و table2.column_name  :أسماء الحقول المنضمة. إذا لم تكن الحقول رقمية، يجب أن تكون من نفس نوع البيانات وأن تحتوي على نفس نوع البيانات، ولكن يجب ألا يكون لها نفس الاسم.

= :أي عامل تشغيل مقارنة ارتباطي: "=" أو "<" أو ">" أو "<=" أو ">=" أو"<>".

مثال توضيحيى :

نفترض ان لدينا الجدول Orders التالى:

و لدينا جدول Customers التالى :


لاحظ أن العمود "CustomerID" في الجدول "Orders" يشير إلى "CustomerID" في جدول "Customers". و بالتالى فان هناك علاقة بين الجدولين أعلاه وهو العمود "CustomerID".

وعلى ذلك، يمكننا إنشاء جملة SQL التالية (التي تحتوي على INNER JOIN) ، والتي تحدد السجلات التي تحتوي على قيم متطابقة في كلا الجدولين:

الكود:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

و النتيجة على النحو التالى :


 كما تري فى الاستعلام اعاله قمنا بجلب السجلات المشتركة بين الجدولين 


مثال اخر :

لنفترض أن لدينا جدولين
ـ جدول authors يضم أسماء 4 مؤلّفين .
ـ جدول books يضم 4 كتب



بينهما عمود مشترك وهو  id = author_id أي ربط حقل المفتاح الأساسي "id" لجدول authors بمفتاحه الخارجي author_id الموجود في جدول books ....و بالتالى سوف نستخدم الشفرة التالية لجلب البيانات المشتركة على النحو التالى :

الكود:
SELECT author_name, book_name
FROM authors
INNER JOIN books
ON id = author_id

شرح الإستعلام :
قمنا باختيار البيانات من الجدولين ، كما تلاحظون : حقل author_name ينتمي إلى الجدول authors . و book_name ينتمي إلى الجدول الثاني . ثم قمنا بربط الجدولين باستعمال INNER JOIN . بعدها بيّنّا الحقلين اللذين سيربطان الجدولين :ON id = author_id أي ربط حقل المفتاح الأساسي "id" لجدول authors بمفتاحه الخارجي author_id الموجود في جدول books .

نتيجة الإستعلام :

avatar
م/موسي
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 156
النقاط : 311
التقيم : 11
الدولة : تونس
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: SQL للمبتدئين .....18_إستخدام التعليمة INNER JOIN

مُساهمة من طرف زهراء في الثلاثاء نوفمبر 20, 2018 6:01 pm


اسال الله تعالى ان يبارك فى علمك
avatar
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 349
النقاط : 573
التقيم : 38
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
تستطيع الرد على المواضيع في هذا المنتدى