اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

يستعمل الـ CROSS JOIN عادة لإنشاء ,إنطلاقا من جدولين, توليفة مزدوجة من كل صف من الجدول الأول مع كل صف من الجدول الثاني . 

أي إن كان الجدول الأول يحوي المعلومات : 

+++++++++++
|STUDENTS |
|---------|
|AHMED    |
|OMAR     | 
|YOUNESS  |
+++++++++++

و الجدول الثاني المعلومات : 

+++++++++++
|CARS     |
|---------|
|BMW      |
|MERCEDES | 
|HONDA    |
+++++++++++

فإن إستعمال الـ CROSS JOIN الذي سيقوم بتشكيل : 

  • سطر لأحمد بمحاذاة سطر BMW . 
  •   //      //         //      //  MERCEDES . 
  •    //      //         //      // HONDA . 

و أيضا :

  • سطر لعمر بمحاذاة سطر BMW . 
  •   //      //         //      //  MERCEDES . 
  •    //      //         //      // HONDA . 

و أيضا :

  • سطر ليونس بمحاذاة سطر BMW . 
  •   //      //         //      //  MERCEDES . 
  •    //      //         //      // HONDA . 

بمعنى أنه سيتبع منطقا كالتالي  : 

            / BMW
           /
|OMAR      ---- MERCEDES
           \
            \ HONDA


            / BMW
           /
|AHMED     --- MERCEDES
           \
            \ HONDA


            / BMW
           /
|YOUNESS   --- MERCEDES
           \
            \ HONDA

لينتج لنا مجموعة النتائج التالية : 

++++++++++++++++++++++
|STUDENTS | CARS     |
|---------|----------|
|AHMED    |BMW       |
|AHMED    |MERCEDES  |
|AHMED    |HONDA     |
|         |          |
|OMAR     |BMW       |
|OMAR     |MERCEDES  |
|OMAR     |HONDA     |
|         |          |
|YOUNESS  |BMW       |
|YOUNESS  |MERCEDES  |
|YOUNESS  |HONDA     |
++++++++++++++++++++++

يشبه هذا جداء مجموع في الجبر , إذ يتم إستعمال النشر المزدوج كطريقة لتحليل عبارة جبرية تتضمن جداء مجموع , مثال : 

(a + c )( b + d ) = ab + ad + cb + cd

سوى أن النتائج في الـ CROSS JOIN يتم نشرها كصفوف بنتيجة الإستعلام . 
السياق العام لها هو ما كالتالي : 

SELECT ColumnName_1, 
       ColumnName_2, 
       ColumnName_N
FROM [Table_1]
     CROSS JOIN [Table_2]

أو يكفي : 

SELECT ColumnName_1, 
       ColumnName_2, 
       ColumnName_N
FROM [Table_1],[Table_2]

و يتم استخدامه بغرض إنشاء مجموعة من كافة مجموعات العناصر بجدول ما بقاعدة البيانات ، مثل تشكيل مجموعات منازل ذات ألوان و أحجام معينة , هذا مع إمكانية التحكم في عناصر هاته المجموعات لونا أو حجما : 

select 
    size,
    color
from
    sizes CROSS JOIN colors
    
    

++++++++++++++++++++++
|SIZE     | COLOR    |
|---------|----------|
|XS       |RED       |
|XS       |BLUE      |
|XS       |GREY      |
|         |          |
|XM       |RED       |
|XM       |BLUE      |
|XM       |GREY      |
|         |          |
|XL       |RED       |
|XL       |GREY      |
|XL       |BLUE      |
++++++++++++++++++++++

 فلو أردنا مثلا إستثناء المنازل الحمراء , فسنتثني اللون الأحمر فقط ليتم إستثناء كل التوليفات المشكلة من حجم X و لون أحمر .. :  و هكذا .

أو ربما تريد جدولاً يحتوي على صف لكل دقيقة في اليوم ، وتريد استخدامه للتحقق من تنفيذ إجراء ما كل دقيقة ، لذلك يمكنك تجاوز ثلاثة جداول : 

select
    hour,
    minute
from
    hours CROSS JOIN minutes
    
    
++++++++++++++++++++++
|HOUR     | MINUTE   |
|---------|----------|
|13:00    |00        |
|13:00    |01        |
|13:00    |02        |
|13:00    |03        |
  .         .
  .         .
  .         .
|21:00    |55        |
|21:00    |56        |
|21:00    |57        |
|21:00    |58        |
  .         .
  .         .
  .         .
++++++++++++++++++++++    

 فهو يخلق مجموعة إحتمالات غير مكررة ,بإعتبار أن الأعمدة تحمل قيما فريدة, إبتداءا من مجموعات محدودة من العناصر . يمكن أن يكون هذا عمليا جدا في عمليات مثل إختبار التطبيق أو بذر قواعد البيانات ببيانات تجريبية . 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...