العودة إلى الدورة

الاستعلامات الفرعية (Subqueries - الاستعلامات المتداخلة)

أساسيات قواعد البيانات: من الصفر إلى الاحتراف

الدرس 30: الاستعلامات الفرعية (Subqueries - الاستعلامات المتداخلة)

الاستعلام الفرعي (Subquery) (أو الاستعلام الداخلي، الاستعلام المتداخل) هو عبارة SELECT مضمنة داخل استعلام SQL آخر. تُستخدم لإجراء عمليات تعتمد على نتيجة استعلام آخر.

أماكن استخدام الاستعلامات الفرعية

يمكن استخدام الاستعلامات الفرعية في عدة أماكن:

  1. في عبارة WHERE (الأكثر شيوعًا): لتصفية الاستعلام الخارجي.
  2. في عبارة SELECT: لإرجاع قيمة قياسية واحدة (scalar subquery).
  3. في عبارة FROM: لمعاملة نتيجة الاستعلام الفرعي كجدول مؤقت (Derived Table).

مثال: الاستعلام الفرعي في عبارة WHERE

البحث عن جميع المنتجات التي يزيد سعرها عن السعر المتوسط لجميع المنتجات.

  • الخطوة 1 (الاستعلام الداخلي): إيجاد متوسط السعر.
  • الخطوة 2 (الاستعلام الخارجي): استخدام هذا المتوسط لتصفية المنتجات.

sql SELECT Name, Price FROM Products WHERE Price > ( SELECT AVG(Price) FROM Products -- الاستعلام الداخلي );

استخدام IN مع الاستعلامات الفرعية

إذا كان الاستعلام الداخلي يُرجع قائمة من القيم (أكثر من صف واحد)، يجب عليك استخدام عامل التشغيل IN.

مثال: البحث عن الموظفين في أقسام محددة

البحث عن جميع الموظفين الذين يعملون في الأقسام الموجودة في 'New York'.

sql SELECT Name FROM Employees WHERE DeptID IN ( SELECT DeptID FROM Departments WHERE Location = 'New York' );