الفرق بين المراجعتين لصفحة: «SQL/left join»
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
ط تعديل الأمثلة |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الربط اليساري LEFT JOIN}}</noinclude> | <noinclude>{{DISPLAYTITLE:الربط اليساري LEFT JOIN}}</noinclude> | ||
يُستخدم هذا النوع من [[SQL/join|الربط]] ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدول اليساري وبعض السجلات من الجدول اليميني التي تحقق شرط الربط، وتكون له البنية العامّة الآتية:<syntaxhighlight lang="sql"> | يُستخدم هذا النوع من [[SQL/join|الربط]] ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدول اليساري وبعض السجلات من الجدول اليميني التي تحقق شرط الربط، وتكون له البنية العامّة الآتية:<syntaxhighlight lang="sql"> | ||
SELECT | SELECT col_names | ||
FROM | FROM tbl_name1 | ||
LEFT [OUTER] JOIN | LEFT [OUTER] JOIN tbl_name2 | ||
ON | ON col_name1 = col_name2 | ||
</syntaxhighlight> | </syntaxhighlight> |
المراجعة الحالية بتاريخ 12:19، 30 يناير 2018
يُستخدم هذا النوع من الربط ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدول اليساري وبعض السجلات من الجدول اليميني التي تحقق شرط الربط، وتكون له البنية العامّة الآتية:
SELECT col_names
FROM tbl_name1
LEFT [OUTER] JOIN tbl_name2
ON col_name1 = col_name2
مثال
إن كانت قاعدة بيانات أحد المراكز التعليمية تحتوي على الجداول الآتية:
الجدول الأول: جدول الطلاب students
(المفتاح الأولي فيه هو عمود StudentID
والمفتاح الثانوي هو عمود CourseID
للربط مع جدول الدورات التدريبية)
RegDate | CourseID | LastName | FirstName | StudentID |
---|---|---|---|---|
07-JUL-2017 | 0206 | Najjar | Rama | 1147 |
08-NOV-2017 | 0604 | Kordi | Jenan | 1148 |
07-JUL-2017 | 0206 | Bitar | Rahaf | 1149 |
20-AUG-2017 | 0607 | Taweel | Farah | 1150 |
08-NOV-2017 | 0610 | Arab | Rami | 1151 |
24-OCT-2017 | 0803 | Akkad | Aya | 1152 |
08-NOV-2017 | 0504 | Haddad | Abed | 1153 |
20-AUG-2017 | 0801 | Fares | Tasneem | 1154 |
24-OCT-2017 | 0607 | Hamsho | Monther | 1155 |
30-SEP-2017 | 0607 | Abd Allah | Hiba | 1156 |
07-JUL-2017 | 0509 | Khatib | Mohammad | 1157 |
20-AUG-2017 | 0801 | Sharif | Ibrahim | 1158 |
24-OCT-2017 | 0802 | Fehmi | Hanin | 1159 |
20-AUG-2017 | 0204 | Zein | Loujain | 1160 |
08-NOV-2017 | 0503 | Helali | Ammar | 1161 |
الجدول الثاني: جدول الدورات التدريبية courses
(المفتاح الأولي فيه هو عمود CourseID
والمفتاح الثانوي هو عمود DepartmentID
للربط مع جدول الأقسام)
DepartmentID | Lecturer | Course | CourseID |
---|---|---|---|
EN01 | Dr. Reem Hadi | English (Adv) | 0204 |
EN01 | Dr. Shadi Balid | English (Int) | 0206 |
EN02 | Dr. Firas Abd | English (TOEFL) | 0211 |
IT01 | Eng. Nasser Sharif | Artificial Intelligence | 0604 |
IT01 | Eng. Amal Safi | Networks | 0607 |
IT01 | Eng. Salem Najm | ICDL | 0610 |
IT02 | Eng. Nasser Sharif | SQL Programming | 0703 |
IT02 | Eng. Amal Safi | FrontEnd Programming | 0704 |
IT03 | Mr. Maher Siraj | Photoshop Design | 0801 |
IT03 | Ms. Nadia Taleb | Illustrator Design | 0802 |
IT03 | Mr. Maher Siraj | UI Design | 0803 |
الجدول الثالث: جدول الأقسام departments
(المفتاح الأولي فيه هو DepartmentID
)
Head | DepatementName | DepartmentID |
---|---|---|
Dr. Firas Abd | General English | EN01 |
Dr. Saer Raslan | Advanced English | EN02 |
Dr. Osama Najjar | Information Technology | IT01 |
Eng. Amal Safi | Programming | IT02 |
Eng. Fares Ahmad | Graphic Design | IT03 |
فإن تنفيذ الاستعلام الآتي:
SELECT StudentID, FirstName, Course, Lecturer
FROM students st
LEFT JOIN courses co
ON st.CourseID = co.CourseID;
سيُظهر كافة السجلات من الجدول students
(والذي سُمي باسم st
ضمن الشيفرة) وسجلات الجدول courses
(والذي سُمي باسم co
ضمن الشيفرة) المرتبطة فقط بالجدول students
عبر العمود CourseID
لتظهر النتائج الآتية:
Lecturer | Course | FirstName | StudentID |
---|---|---|---|
Dr. Shadi Balid | English (Int) | Rama | 1147 |
Eng. Nasser Sharif | Artificial Intelligence | Jenan | 1148 |
Dr. Shadi Balid | English (Int) | Rahaf | 1149 |
Eng. Amal Safi | Networks | Farah | 1150 |
Eng. Salem Najm | ICDL | Rami | 1151 |
Mr. Maher Siraj | UI Design | Aya | 1152 |
NULL | NULL | Abed | 1153 |
Mr. Maher Siraj | Photoshop Design | Tasneem | 1154 |
Eng. Amal Safi | Networks | Monther | 1155 |
Eng. Amal Safi | Networks | Hiba | 1156 |
NULL | NULL | Mohammad | 1157 |
Mr. Maher Siraj | Photoshop Design | Ibrahim | 1158 |
Ms. Nadia Taleb | Illustrator Design | Hanin | 1159 |
Dr. Reem Hadi | English (Adv) | Loujain | 1160 |
NULL | NULL | Ammar | 1161 |
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |