انتقل إلى محتوى الدرس

Derived Tables in FROM Clause الجداول المشتقة داخل FROM

تعلّم الاستعلامات الفرعية مع IN و ANY و ALL والجداول المشتقة في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عند وضع استعلام فرعي داخل جملة FROM، يعامل MySQL مخرجاته كجدول مؤقت افتراضي يُسمى الجدول المشتق (Derived Table):

  • إلزامية الاسم المستعار: يشترط MySQL منح كل جدول مشتق اسماً مستعاراً بعد قوس الإغلاق مباشرةً (مثل FROM (SELECT ...) AS order_totals)، وإغفاله يطلق الخطأ رقم 1248.
  • التجميع ثنائي المراحل: تتيح الجداول المشتقة حساب متوسط المجاميع (مثل متوسط إجمالي إنفاق كل عميل) وهو ما لا يمكن كتابته مباشرة بتداخل AVG(SUM(...)).
SQL
-- Compute average customer lifetime spend via a derived table in FROM
SELECT
  COUNT(*) AS active_customers,
  ROUND(AVG(customer_totals.lifetime_spend), 2) AS avg_lifetime_spend
FROM (
  SELECT user_id, SUM(total_amount) AS lifetime_spend
  FROM orders
  WHERE status = 'paid'
  GROUP BY user_id
) AS customer_totals;