منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : لفهم كيفية الربط الذي يتم بين الجداول
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
يوجد عدة طرق مختلفة من الربط كما بالشكل التالي:
وكلكم مر بها واستخدمها

PHP كود :
INNER JOIN
LEFT JOIN
RIGHT JOIN
OUTER JOIN
LEFT JOIN EXCLUDING INNER JOIN
RIGHT JOIN EXCLUDING INNER JOIN
OUTER JOIN EXCLUDING INNER JOIN 


الخيار الاول هو اكثر الخيارات شيوعا واستخداما وهو INNER JOIN



سيقوم هذا الاستعلام بإرجاع كافة السجلات في الجدول الأيسر (الجدول أ) التي لها سجل مطابق في الجدول الأيمن (الجدول ب). 
وجملة الاستعلام كمثال هي كالتالي .

PHP كود :
SELECT <select_list
FROM Table_A A
INNER JOIN Table_B B
ON A
.Key B.Key 

المفتاح الثاني هو LEFT JOIN
سييقوم هذا الاستعلام بإرجاع كافة السجلات الموجودة في الجدول الأيسر (الجدول أ) بغض النظر إذا كان أي من تلك السجلات لديه تطابق في الجدول الصحيح (الجدول ب). 



جملة الاستعلام كمثال

PHP كود :
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A
.Key B.Key 

المفتاح الثالث RIGHT JOIN
سييقوم هذا الاستعلام بإرجاع كافة السجلات الموجودة في الجدول الأيسر (الجدول ب) بغض النظر إذا كان أي من تلك السجلات لديه تطابق في الجدول الأيسر (الجدول أ). 



جملة الاستعلاك كمثال هي

PHP كود :
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A
.Key B.Key 

المفتاح الرابع هو OUTER JOIN

سيقوم هذا الاستعلام بإرجاع كافة السجلات من كلا الجدولين ضم السجلات من الجدول الأيسر (الجدول أ) التي تطابق السجلات من الجدول الصحيح (الجدول ب). 
وتقوم المفاتيح التالية بنفس الشئ ايضا " FULL OUTER JOINأو" FULL JOIN



جملة الاستعلام كمثال

PHP كود :
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A
.Key B.Key 

المفتاح الخامس هو LEFT JOIN EXCLUDING INNER JOIN
سيقوم هذا الاستعلام بإرجاع كافة السجلات الموجودة في الجدول الأيسر (الجدول أ) التي لا تتطابق مع أية سجلات في الجدول الأيمن (الجدول ب).


جملة الاستعلام هي

PHP كود :
SELECT <select_list
FROM Table_A A
LEFT JOIN Table_B B
ON A
.Key B.Key
WHERE B
.Key IS NULL 



المفتاح السادس هو RIGHT JOIN EXCLUDING INNER JOIN
سيقوم هذا الاستعلام بإرجاع كافة السجلات الموجودة في الجدول الأيمن (الجدول ب) التي لا تتطابق مع أي سجلات في الجدول الأيسر (الجدول أ).




جملة الاستعلام هي
PHP كود :
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A
.Key B.Key
WHERE A
.Key IS NULL 

المفتاح السابع هو OUTER JOIN EXCLUDING INNER JOIN
سيقوم هذا الاستعلام بإرجاع كافة السجلات الموجودة في الجدول الأيسر (الجدول أ) وكافة السجلات الموجودة في الجدول الأيسر (الجدول ب) غير المتطابقة



جملة الاستعلام هي

PHP كود :
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A
.Key B.Key
WHERE A
.Key IS NULL OR B.Key IS NULL 


هذه هما الجدولين الذين تم استخدامهما في المثال

PHP كود :
TABLE_A
  PK Value
---- ----------
 
  1 FOX
   2 COP
   3 TAXI
   6 WASHINGTON
   7 DELL
   5 ARIZONA
   4 LINCOLN
  10 LUCENT

TABLE_B
  PK Value
---- ----------
 
  1 TROT
   2 CAR
   3 CAB
   6 MONUMENT
   7 PC
   8 MICROSOFT
   9 APPLE
  11 SCOTCH 


الان اذا طبقنا او اظهرنا النتائج ليست مصورة وانما حقيقة ، من فوق جملة الاستعلام ومن تحت النتيجة

PHP كود :
-- INNER JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
 
      B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
INNER JOIN Table_B B
ON A
.PK B.PK

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
 
  1 FOX        TROT          1
   2 COP        CAR           2
   3 TAXI       CAB           3
   6 WASHINGTON MONUMENT      6
   7 DELL       PC            7

يعود بخمسة صفوف 


PHP كود :
-- LEFT JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
LEFT JOIN Table_B B
ON A
.PK B.PK

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
 
  1 FOX        TROT          1
   2 COP        CAR           2
   3 TAXI       CAB           3
   4 LINCOLN    NULL       NULL
   5 ARIZONA    NULL       NULL
   6 WASHINGTON MONUMENT      6
   7 DELL       PC            7
  10 LUCENT     NULL       NULL

يعود بثمانية صفوف 


PHP كود :
-- RIGHT JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
RIGHT JOIN Table_B B
ON A
.PK B.PK

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
 
  1 FOX        TROT          1
   2 COP        CAR           2
   3 TAXI       CAB           3
   6 WASHINGTON MONUMENT      6
   7 DELL       PC            7
NULL NULL       MICROSOFT     8
NULL NULL       APPLE         9
NULL NULL       SCOTCH       11

يعود بثمانية صفوف 


PHP كود :
-- OUTER JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A
.PK B.PK

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
 
  1 FOX        TROT          1
   2 COP        CAR           2
   3 TAXI       CAB           3
   6 WASHINGTON MONUMENT      6
   7 DELL       PC            7
NULL NULL       MICROSOFT     8
NULL NULL       APPLE         9
NULL NULL       SCOTCH       11
   5 ARIZONA    NULL       NULL
   4 LINCOLN    NULL       NULL
  10 LUCENT     NULL       NULL

يعود بي 11 صف 


PHP كود :
-- LEFT EXCLUDING JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
LEFT JOIN Table_B B
ON A
.PK B.PK
WHERE B
.PK IS NULL

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
 
  4 LINCOLN    NULL       NULL
   5 ARIZONA    NULL       NULL
  10 LUCENT     NULL       NULL

يعود بثلاثة صفوف 


PHP كود :
-- RIGHT EXCLUDING JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
RIGHT JOIN Table_B B
ON A
.PK B.PK
WHERE A
.PK IS NULL

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
NULL NULL       MICROSOFT     8
NULL NULL       APPLE         9
NULL NULL       SCOTCH       11

يعود بثلاثة صفوف 


PHP كود :
-- OUTER EXCLUDING JOIN
SELECT A
.PK AS A_PKA.Value AS A_Value,
B.Value AS B_ValueB.PK AS B_PK
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A
.PK B.PK
WHERE A
.PK IS NULL
OR B.PK IS NULL

A_PK A_Value    B_Value    B_PK
---- ---------- ---------- ----
NULL NULL       MICROSOFT     8
NULL NULL       APPLE         9
NULL NULL       SCOTCH       11
   5 ARIZONA    NULL       NULL
   4 LINCOLN    NULL       NULL
  10 LUCENT     NULL       NULL

يعود بستة صفوف 

اخيرا هذه هي كل عمليات الربط معا

مجهود ممتاز
جزاك الله خيرا
جزاك الله كل خير على هالجهد والعلم وعوضك الجنة ووالديك
هذا الموضوع الذي ابحث عنه وخاصه اني في اول الطريق
بارك الله فيك وذاد علمك