الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الربط بين الجداول

مغلق
بدأه server_programmer في 8 أغسطس 2004 · 3 رد · 1,106 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الرجاء عندي أستفسار

في الأكسيس و Sql-Server على السواء يتم الربط بين الجداول بالكلمة

Inner join

أو

Right Join

أو

Left join

لتوضيح الفكرة لسؤالي القادم أرجو المتابعة

مثلا أفرض عندي الجدول

Collage

يتكون من ColageNo, Colage_Name,Collage_Address

Student

يتكون من RegNo , Name, ColageNo

و جدول Mark

يتكون من RegNo , Arabic, English

لو أردت الربط بين الجدولين

Student

و الجدول Mark بحيث أحصل في نتيجة الأستعلام على بيانات كل الطلبة

وما يتبعها من بيانات في جدول Mark

كيف تكون الصيغة

هذا أولا

ثانيا لو أردت أن أضيف جدول ثالث مثل Collage بحيث يكون ناتج الأستعلام كالتالي

كل البيانات من جدول Collage و ما يتبعها من بيانات في جدول Student و ما يتبع البيانات من جدول Student في جدول Mark

أرجو الأفادة

لأنه حقيقة ميزة الربط بأستخدام الرمز (+) في oracle مش داخلة في راسي

و لا أعرف هيكليتها بالنسبة للجداول المتداخلة

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#2

السلام عليكم

الحل بسيط ان شاء الله

علشان تربط بين جدولين جدول الطلبة وجدول الدرجات تحسبها كالآتى

كل طالب هيكون له صف درجات واحد هتكون علاقة واحد - واحد

وإذا كان كل طالب ممكن يكون له أكثر من صف درجات ، باعتبار انه ممكن يكون له فصل أول وفصل تانى لنفس المواد يبقى هتكون العلاقة واحد - متعدد .. وهو الأصح

وفى الحالتين السابقتين سوف يكون هناك حقل غريب فى جدول الدرجات يأخذ بياناته من حقل المفتاح الأساسى فى جدول الطلبة وهو regno

ثانياً لازم يكون فيه علاقة واحد - متعدد بين جدول الكلية وبين جدول الطلبة ، حيث أن الكلية الواحدة سوف يكون فيها أكثر من طالب

وبالنسبة لطلبك فى ثانيا سوف يكون الإستعلام كالآتى

SELECT s.RegNo, s.Name, s.ColageNo, c.ColageNo, c.Colage_Name, c.collage_Address, m.RegNo, m.Arabic, m.English

FROM (Collage AS c INNER JOIN Student AS s ON c.ColageNo=s.ColageNo) INNER JOIN mark AS m ON s.RegNo=m.RegNo;

إن شاء الله يكون هو المطلوب

سلام عليكم

سبحان الله وبحمده ... سبحان الله العظيم

#3

أخي العزيز

أشكر لك مساهمتك السريعة في الرد

لكن لو فرضنا أن أحد الطلاب ليس لدية أي علامات

فأن النتيجة النهاءية لن تظهر أي بيانات عنه فيها

لأن الكلمة

Inner join

يكون ناتجها البيانات المترابطة في كلا من

الجدولين

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#4

السلام عليكم جميعاً

لو عاوز الاستعلام يظهر حتى الطلاب الذين ليس لهم درجات فى جدول الدرجات يبقى الاستعلام هيكون كالآتى

SELECT s.RegNo, s.Name, s.ColageNo, c.ColageNo, c.Colage_Name, c.collage_Address, m.RegNo, m.Arabic, m.English

FROM (Collage AS c INNER JOIN Student AS s ON c.ColageNo=s.ColageNo) LEFT JOIN mark AS m ON s.RegNo=m.RegNo;

سبحان الله وبحمده ... سبحان الله العظيم

هذا الموضوع مغلق.

مواضيع مشابهة