اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

هناك فروق كثيرة بين الطريقتين، لكن بشكل أساسي، فان الفرق يتمثل فيه كيفية عمل كل منهما:

  1. Natural Join : تقوم باختيار الأعمدة بناء على التطابق في محتوى عمود مشترك بين الجداول التي يتم الاختيار بينها، بمعني انه يبحث عن عمود مشترك ويقوم باظهار كل الخصائص بدمج الأعمدة المراد دمجها بناء على تطابق هذا العمود المشترك، أنظر المثال التالي:

تخيل أن هناك جدول للطلاب كالتالي:

StudentTable3.png.b7754144577d8856eb720d95155eb593.png

وجدول أخر للدرجات كالتالي:

MarksTable2.png.8aa15755eaef32fc3564df94f91a6b5a.png

لاحظ وجود عمود مشترك Roll_No وبه أشخاص متطابقون في كلا الجدولين (2 و 3)، اذا قمنا بتشغيل هذا الأمر:

SELECT * 
FROM Student NATURAL JOIN Marks;

فسيقوم باختيار الأشخاص المشتركون في كلا الجدولين بناء على العمود Roll_No كالتالي:

NATURAL-JOIN-TABLE3.png.e545edfc594bdef01b320168e5798f3e.png

  • Inner Join : يقوم باختيار العناصر المتشابهة تمام مثلا Natural Join لكن يقوم بارجاع العمود المشترك مرة عن كل جدول، بمعني أخر أنه يقوم بوضع كل جدول بجانب الأخر بعد بحث التطابق بين الجدولين، في المثال السابق ، لو قمنا بتشغيل الأمر:
  • SELECT * 
    FROM student S INNER JOIN Marks M ON S.Roll_No = M.Roll_No; 

    يكون الخرج على الشكل التالي:

INNERJOIN-.png.8af61f80126bd6f98a4bb0f2b6d3dda5.png

 

  • 1
نشر

أحد الاختلافات المهمة بين INNER JOIN و NATURAL JOIN هو عدد الأعمدة التي يتم إرجاعها, افترض لدينا الجدولين الآتيين

TableA                           TableB
  
Column1      Column2         Column1    Column3 
     
  1            2                1          3      
       

لو حاولنا استخدام  INNER JOIN كالتالي

SELECT * FROM TableA AS a INNER JOIN TableB AS b USING (Column1);
SELECT * FROM TableA AS a INNER JOIN TableB AS b ON a.Column1 = b.Column1;

سوف تكون النتيجة كالتالي

 
 a.Column1   a.Column2  b.Column1 b.Column3

 1            2         1           3      

أما لو حاولنا استخدام NATURAL JOIN فسوف تكون النتيحة كالتالي

SELECT * FROM TableA NATURAL JOIN TableB
  
Column1      Column2   Column3  

 1            2          3      

يتم تجنب العمدان المكررة

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...