MySQL Subquery Tutorial

مؤلف: Janice Evans
تاريخ الخلق: 28 تموز 2021
تاريخ التحديث: 13 قد 2024
Anonim
Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn
فيديو: Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn

المحتوى

الاستعلامات الفرعية هي استعلامات متداخلة داخل أخرى. إنها تسمح لك بفصل جزء من الجملة وتوفير بديل أكثر قابلية للقراءة للعمليات التي قد تتطلب روابط ونقابات معقدة. يمكن أن تُرجع الاستعلامات الفرعية في MySQL قيمة أو صف أو عمود أو جدول بيانات.


استخدم الاستعلامات الفرعية لإنشاء جمل أكثر قابلية للقراءة والتعاقد (Thinkstock Images / Comstock / Getty Images)

بناء الجملة

بناء الجملة الأساسي استعلام فرعي كما يلي:

SELECT * FROM table1 WHERE columnA = (SELECT columnB FROM table2) GO

يجب أن تتكون الاستعلامات الفرعية من عبارة "SELECT" أو "INSERT" أو "UPDATE" أو "DELETE" أو "SET" أو "DO" ، ولا يمكنك تغيير الجدول واستخدامه داخل الاستعلام الفرعي في نفس الوقت. عادةً ما يتم استخدام الاستعلامات الفرعية على الجانب الأيمن من جملة WHERE ، والتي يمكن أن تحتوي على أي من عوامل المقارنة والعوامل المنطقية ، مثل = (يساوي) ، <> (مختلف) ، <= (أقل من أو يساوي) ،> = أو "بين" (بين قيمتين) ، "NOT" ، "AND" و "OR". يمكنك أيضًا استخدام الكلمات الأساسية "مميزة" و "تجميع BY" و "ترتيب BY" و "LIMIT" وحتى دمجها مع عبارات "JOIN". بصرف النظر عن القيود التفصيلية ، هناك القليل من القيود عند كتابة الاستعلامات الفرعية في MySQL.


لا يوجد حتى قيود على عدد الاستعلامات الفرعية التي تتم داخل الجملة. يمكنك العثور على مزيد من المعلومات حول الاستعلامات الفرعية في دليل المرجع MySQL (راجع قسم "الموارد").

مثال

افترض أن لديك جدولين: أحدهما يحمل الاسم الأول والأخير ، والعنوان والرمز البريدي لأعضاء القائمة البريدية ، والآخر مع المدن والولايات والرمز البريدي. للعثور على أسماء الأعضاء الذين يعيشون في برازيليا ، يمكن استخدام جمل "تحديد" متعددة. أول واحد سوف يسعى إلى CEPs من برازيليا:

اختر من الرموز حيث الحالة = "BRASILIA" GO

ثم استخدم "تحديد" لكل رمز بريدي موجود:

اختر الاسم واللقب من العناوين WHERE cep = [codecep] GO

هذه الطريقة تستغرق وقتًا طويلاً وسهلة ارتكاب الأخطاء. من السهل أن تفقد الرمز البريدي ، خاصة إذا كان هناك الكثير منهم. أسهل طريقة لإكمال هذه المهمة هي استخدام الجملة الأولى ك استعلام فرعي في الجملة الثانية:

اسم SELECT ، اللقب FROM من العناوين WHERE cep = (SELECT cep FROM من رموز WHERE state = "BRASILIA") GO


سيعرض هذا الاستعلام جميع أعضاء قائمتك البريدية الذين يعيشون في برازيليا.