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

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

SQL للمبتدئين .....18_إستخدام التعليمة INNER JOIN Empty 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 السجلات التي تحتوي على قيم متطابقة في كلا الجدولين.

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

ويتم بناء الجملة على النحو التالى :
الكود:
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 التالى:
SQL للمبتدئين .....18_إستخدام التعليمة INNER JOIN 182532728

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

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

لاحظ أن العمود "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;

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

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

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


مثال اخر :

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


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

بينهما عمود مشترك وهو  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 .

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

SQL للمبتدئين .....18_إستخدام التعليمة INNER JOIN 878210323
م/موسي
م/موسي
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 173
النقاط : 337
التقيم : 12
الدولة : تونس
الجنس : ذكر

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

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

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


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

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

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

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

ََ

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


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