8.8 SQL - EXISTS

جملة SQL EXISTS

جملة EXISTS تُستخدم للتحقق مما إذا كان الاستعلام الفرعي (Subquery) يُرجع أي صفوف (rows).

✅ لو الاستعلام الفرعي بيرجع صف واحد على الأقل → TRUE
❌ لو مفيش نتائج → FALSE



الصيغة:

SELECT column_name(s)
FROM table_name
WHERE EXISTS (
  SELECT column_name FROM table_name WHERE condition
);


مثال عملي: عرض العملاء اللي عندهم طلبات

SELECT CustomerName
FROM Customers
WHERE EXISTS (
  SELECT OrderID FROM Orders WHERE Customers.CustomerID = Orders.CustomerID
);

⬅ الاستعلام بيرجع فقط العملاء اللي CustomerID بتاعهم موجود في جدول Orders.



شرح مبسط:

  • EXISTS مش بتهتم إيه اللي بيرجعه الاستعلام الداخلي.
  • هي بس بتتأكد: هل في أي صف بيرجع؟ لو آه ➜ TRUE


مثال باستخدام NOT EXISTS: عرض العملاء اللي ماعندهمش طلبات

SELECT CustomerName
FROM Customers
WHERE NOT EXISTS (
  SELECT OrderID FROM Orders WHERE Customers.CustomerID = Orders.CustomerID
);


مقارنة بين EXISTS و IN:

العنصر EXISTS IN
الأداء غالبًا أسرع مع جداول كبيرة أبطأ لو الاستعلام الداخلي بيرجع عدد كبير
التقييم يتوقف عند أول نتيجة بيحمّل كل النتائج للمقارنة
الاستعمال مثالي مع SELECT * أو JOIN مثالي لو بتقارن مع قائمة قيم ثابتة

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework