الفرق بين المراجعتين لصفحة: «SQL/full join»
لا ملخص تعديل |
Eyad-alismail (نقاش | مساهمات) ط ←التوافقية: FULL OUTER JOIN غير مدعوم في SQLite |
||
(3 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الربط التام FULL JOIN}}</noinclude> | <noinclude>{{DISPLAYTITLE:الربط التام FULL JOIN}}</noinclude> | ||
يُستخدم هذا النوع من [[SQL/join|الربط]] ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدولين اليساري واليميني بغض النظر عن تحقيقها للشرط، وتكون له البنية العامّة الآتية:<syntaxhighlight lang="sql"> | يُستخدم هذا النوع من [[SQL/join|الربط]] ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدولين اليساري واليميني بغض النظر عن تحقيقها للشرط، وتكون له البنية العامّة الآتية:<syntaxhighlight lang="sql"> | ||
SELECT | SELECT col_names | ||
FROM | FROM tbl_name1 | ||
FULL JOIN | FULL JOIN tbl_name2 | ||
ON | ON col_name1 = col_name2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
سطر 217: | سطر 217: | ||
|- | |- | ||
|Dr. Shadi Balid | |Dr. Shadi Balid | ||
|English (Int) | |English (Int) | ||
|Rama | |Rama | ||
|1147 | |1147 | ||
سطر 227: | سطر 227: | ||
|- | |- | ||
|Dr. Shadi Balid | |Dr. Shadi Balid | ||
|English (Int) | |English (Int) | ||
|Rahaf | |Rahaf | ||
|1149 | |1149 | ||
سطر 282: | سطر 282: | ||
|- | |- | ||
|Dr. Reem Hadi | |Dr. Reem Hadi | ||
|English (Adv) | |English (Adv) | ||
|Loujain | |Loujain | ||
|1160 | |1160 | ||
سطر 292: | سطر 292: | ||
|- | |- | ||
|Dr. Firas Abd | |Dr. Firas Abd | ||
|English (TOEFL) | |English (TOEFL) | ||
|NULL | |NULL | ||
|NULL | |NULL | ||
سطر 316: | سطر 316: | ||
|- | |- | ||
|نعم | |نعم | ||
| | |لا | ||
|نعم | |نعم | ||
|نعم | |نعم | ||
سطر 327: | سطر 327: | ||
* [https://www.sqlite.org/syntax/join-operator.html توثيق FULL JOIN في محرك SQLite] | * [https://www.sqlite.org/syntax/join-operator.html توثيق FULL JOIN في محرك SQLite] | ||
* [https://msdn.microsoft.com/en-us/library/zt8wzxy4.aspx?f=255&MSPPError=-2147217396 توثيق FULL JOIN في محرك SQLServer] | * [https://msdn.microsoft.com/en-us/library/zt8wzxy4.aspx?f=255&MSPPError=-2147217396 توثيق FULL JOIN في محرك SQLServer] | ||
[[تصنيف:SQL]] | [[تصنيف:SQL|{{SUBPAGENAME}}]] | ||
[[تصنيف:SQL Join]] | [[تصنيف:SQL Join|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 12:42، 2 ديسمبر 2019
يُستخدم هذا النوع من الربط ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدولين اليساري واليميني بغض النظر عن تحقيقها للشرط، وتكون له البنية العامّة الآتية:
SELECT col_names
FROM tbl_name1
FULL 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
FULL JOIN courses co
ON st.CourseID = co.CourseID;
سيُظهر كافة السجلات من الجدول students
(والذي سُمي باسم st
ضمن الشيفرة) وكافة سجلات الجدول courses
(والذي سُمي باسم co
ضمن الشيفرة) سواءً كانت مرتبطة عبر العمود 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 |
Dr. Firas Abd | English (TOEFL) | NULL | NULL |
Eng. Nasser Sharif | SQL Programming | NULL | NULL |
Eng. Amal Safi | FrontEnd Programming | NULL | NULL |
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | لا | نعم | نعم | لا |