إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

متى يتم استخدام Nested Subquery و Correlated


3 رد (ردود) على هذا الموضوع

#1 omar-alreyati

omar-alreyati

    عضو مميز

  • الأعضــاء
  • 596 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 12 December 2005 - 10:50 AM

الاخوة الاعزاء :

سؤالي في subquery : متى يتم استخدام Nested Subquery
ومتي يتم استخدام Correlated Subquery

وما الفرق بينهما ، وما الفائدة من استخدام Correlated Subquery ولماذا لايتم استخدام Nested Subquery دائماً ..........؟؟؟؟؟؟؟؟؟


راجياً منكم الرد لأهمية الموضوع للجميع .

تم تعديل عنوان الموضوع من قبل المشرف , راجع شروط الكتابه

فى المنتدى تفاديا حذف موضوعك مره اخره


بالله عليكم لا تنسوني من دعاءكم الصالح
لا تنسوا أهل غزة والعراق والمجاهدين من دعاءكم

#2 egyhamada

egyhamada

    مشترك

  • الأعضــاء
  • 194 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 December 2005 - 01:20 PM

If you do a search for "correlated subquery" on the Web, you will find several sites suggesting that:

A correlated subquery is a subquery that is evaluated once for each row of the outer query.

It may indeed be convenient to imagine a correlated subquery as being "evaluated" or "executed" once for each row of the outer query; do not, however, be misled into thinking that the database optimizer actually executes it in that fashion, because this will lead you to believe that it's not very efficient, when in fact most optimizers will process a correlated subquery very efficiently, as a join.

Okay, with that out of the way, what's the difference between an ordinary subquery and a correlated subquery? The correlated subquery makes an actual reference, using a correlation variable, to the outer query. For example, here's a query with two subqueries:

select studentname
, studentmark
, ( select avg(studentmark)
from students
where class = t1.class ) as classaverage
, ( select avg(studentmark)
from students ) as schoolaverage
from students t1
In the above example, t1 is the correlation variable that lets the correlated subquery refer to the table in the outer query. For each student, two averages are calculated: the average mark of all students in the same class, and the overall average of all students in all classes.

Here's another example of a correlated subquery, this time in the WHERE clause:

select category
, articletitle
, articlepubdate
from articles zz
where articlepubdate
= ( select max(articlepubdate)
from articles
where category = zz.category )
In this example, only the most recent article in each category is selected

see the original site Here

#3 omar-alreyati

omar-alreyati

    عضو مميز

  • الأعضــاء
  • 596 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 December 2005 - 02:55 PM

الاخ العزيز :

هل من الممكن التوضيح



وشكراً لتعاونك

بالله عليكم لا تنسوني من دعاءكم الصالح
لا تنسوا أهل غزة والعراق والمجاهدين من دعاءكم

#4 egyhamada

egyhamada

    مشترك

  • الأعضــاء
  • 194 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 December 2005 - 01:11 PM

السلام عليكم
اسف للتاخير فى الرد و ذلك بسبب الانشغال
النوع الاول و هو ال nested query
بمعنى مبسط هو لما يكون فى ال where جملة select

اما النوع التانى Correlated
وهو وجود استعلام فى جملة ال where و يكون بيستخدم عمود من الاستعلام اللى فى ال outer statment
مثال ذلك
select category
, articletitle
, articlepubdate
from articles zz
where articlepubdate
= ( select max(articlepubdate)
from articles
where category = zz.category )