منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى العرب التعليمى

منتدى العرب التعليمى تعليمى شامل
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 تطبيق التداخل او مايسمى بالـ Joins فى MySql

اذهب الى الأسفل 
كاتب الموضوعرسالة
الويب المصرى
الباشا صاحب المنتدى
الباشا صاحب المنتدى
الويب المصرى


عدد المساهمات : 434
تاريخ التسجيل : 14/11/2010
العمر : 37

تطبيق التداخل او مايسمى بالـ Joins فى MySql  Empty
مُساهمةموضوع: تطبيق التداخل او مايسمى بالـ Joins فى MySql    تطبيق التداخل او مايسمى بالـ Joins فى MySql  Emptyالأحد نوفمبر 21, 2010 12:47 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]



كما تعلم اخى الكريم ان جداول قاعدة البيانات
يتم تصميمها بناء على علاقة كل جدول بالأخر

على سبيل المثال مثلا.

عندما تدخل احد المنتديات, وتدخل احد الأقسام بالمنتدى

ترى انه تم عرض كل المواضيع التى تم وضعها بهذا القسم.

وبجانب عرض المواضيع, ترى انه يتم عرض بيانات القسم نفسه,
كا اسم القسم وقوانينه, الخ

هذا مايعرف بالـ joins

فأنت تستخرج بيان او اكثر من اكثر من جدول.

شرط ان يكون مشترك بينهم شئ واحد (وهو فى امثلتنا الـ PK والـ FK )

لنأخذ مثال. (الصورة المبسطة التى يتم بها الأمر)

كود :

SELECT topics.topic, users.username FROM topics, users WHERE topics.uid=users.uid



المثال اعلاه سوف يستخرج عناوين المواضيع, واسم كاتب الموضوع.
وسيتم الإستخراج فقط, فى حالة ان هوية كاتب الموضوع, تساوى هوية احد الأعضاء.
وسيتم الإستخراج ايضا من كل من الجدولين topics و users

والأمر نفسه يمكن ان يطبق بإستخدام الـ INNER JOIN

بالشكل التالى

كود :

SELECT topics.topic, users.username FROM topics INNER JOIN users ON topics.uid = users.uid



ملحوظة سريعة: كما تلاحظ عندما نجرى بحث واستخراج داخل اكثر من جدول بـ query واحد
يجب ان تستخدم نظام الـ . (النقطة) حيث يتم كتابة اسم الجدول ثم . ثم اسم الحقل
table_name.column_name

وايضا, ملحوظة اخرى عن الـ INNER JOIN فهى كما تلاحظ مثلها مثل نظام الفصل بين اسامى الجداول التى سيتم الإستخراج منها.
والـ INNER JOIN يستخدم كى يعود لنا بالنتائج التى تتحقق بها المشروطة فقط
والتى كانت فى مثالنا السابق ON topics.uid = users.uid
اما اذا وجد اى سجل بأحد الجدولين, ولا يتطابق مع الجدول الأخر (من حيث هوية العضو uid) فلن يتم عرضه.

هناك ايضا الـ LEFT JOIN والـ RIGHT JOIN

لنبدأ بالـ LEFT JOIN اذا فهمتها جيدا لن تحتاج لشرح الـ RIGHT JOIN

انظر المثال التالى

كود :

SELECT * FROM topics LEFT JOIN users ON topics.uid = users.uid



(لاحظ اننا وضعنا اسم جدول الـ topics على اليسار.)

الكود اعلاه, سوف يستخرج كل البيانات الموجودة بجدول الـ topics سواء كان بها uid متوافق مع احد الـ uid بجدول الـ users او ليس متوافق مع احدهم.
ولكنه سوف يستخرج من جدول الـ users فقط بيانات من يتوافق حقل الـ uid له مع الـ uid فى جدول الـ topics غير ذلك لن يتم استخراجه.

بالنسبة للـ RIGHT JOIN
فهى ستفعل نفس الشئ, لكن بدلا من ان تستخرج لنا كل بيانات الجدول الموجود على اليسار, سوف تفعل ذلك للجدول الموجود على اليمين
(وتستخرج الجدول الذى على اليسار فى حالة توافقه مع المشروطة فقط)


الـ Joins هى اشياء معقدة وتستخدم بشكل كبير فى التطبيقات الكبيرة.

لمحات بسيطة:
1. يمكنك ان تطبق Join على اكثر من جدول, او حتى لجدول واحد مع نفسه.
2. مشروطات الـ Joins يمكن ان تستخدم لحقول غير حقول الـ PK والـ FK مثلما تم شرحهم هنا.


اتمنى يكون الدرس واضح بكل جوانبه بإذن الله.

واراكم فى الدرس القادم على خير.
المصدر: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://egypt1.forumegypt.net
 
تطبيق التداخل او مايسمى بالـ Joins فى MySql
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» خاتمة دروة MYSQL
» استخدام المشروطات Where clause in MYSQL
» لمحة بسيطة عن MySql
» دوال النصوص فى MySQL
» الدوال الرقمية فى MYSQL

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى العرب التعليمى :: منتدى البرمجة والتصميم والتطوير :: قسم قواعد البيانات :: قسم دورة Microsoft my SQL-
انتقل الى: