شرح صفوف ومحتوى الفقرة
الاستعلام الفرعي هو جملة SELECT محاطة بقوسين ومتداخلة داخل استعلام SQL خارجي. وأبسط أشكاله هو الاستعلام الفرعي مفرد القيمة (Scalar Subquery) الذي يرجع صفاً واحداً وعموداً واحداً كحد أقصى (قيمة مفردة واحدة):
- صالح في موضع أي قيمة: لأنه يُقيّم إلى قيمة وحيدة، يمكنك وضعه يمين معاملات المقارنة القياسية (
=و>و<) داخلWHEREأوHAVINGأو حتى كعمود محسوب فيSELECT. - قيد القيمة الوحيدة: إذا أرجع الاستعلام الفرعي المفرد أكثر من صف واحد أثناء التنفيذ، يوقف MySQL الاستعلام فوراً بالخطأ رقم 1242.
SQL
-- Find products priced higher than the overall catalog average
SELECT
product_id,
product_title,
unit_price
FROM products
WHERE unit_price > (
SELECT AVG(unit_price)
FROM products
)
ORDER BY unit_price DESC;