שם הכותב: תאריך: 02 ינואר 2014

שיעור 12 – 29/12/13

תת שאילתה מתואמת

תת שאילתה מתואמת נקראת גם תת שאילתה מסונכרנת, כלומר שאילתה המקוננת בתוך שאילתה אחרת. תת השאילתא מבצעת פעולה עבור כל קריאה מהשאילתה הראשית. בניגוד לתת השאילתות שראינו עד כה (Select, Where, Having, From) כולן מסוגלות לעבוד בצורה עצמאית, תת שאילתה מתואמת אינה עובדת בצורה עצמאית אלא תלויה בשאילתה הראשית המספקת לה בכל ריצה את הנתונים לשם הריצה.

כללים:

  1. העברת הנתונים מתבצעת בכיוון הפוך: מהשאילתה הראשית אל תת השאילתה.
  2. נעשה שימוש בשמות של עמודות השייכות לשאילתה הראשית בתוך משפט ה-Where של תת השאילתה.


הצג את כל פרטי ההזמנות שמחיר המכירה שלהן הוא הנמוך ביותר.

במקרה כזה יש צורך בשאילתה מתואמת.

תת שאילתה מתואמת מהווה תת שאילתה תחת שאילתה ראשית. היא לא חיה בפני עצמה אלא מבוססת על האינפורמציה שהשאילתה הראשית תעביר לה, בהתאם לעיקרון התיאום. בסעיף הדוגמה לעיל – השאילתה הראשית תעביר לתת השאילתה המתואמת את מספר ההזמנה הראשון תוך שהיא מבקשת להחזיר את ההזמנה שמחיר המכירה שלה הוא הנמוך, כאילו ההזמנה שתחזור היא היחידה שקיימת במסד. לאחר מכן השאילתה הראשית תעביר לתת השאילתה המתואמת את מספר ההזמנה השני וכך הלאה. תת השאילתה המתואמת רצה כמספר הפעמים שישנו קוד הזמנה שונה זה מזה (לולאה), כלומר מספר הפעמים הוא ייחודי לקריטריון התיאום (אם נתבקשו לפי קוד הזמנה או לפי מאפיין אחר ובהתאם למה שמופיע במסד הנתונים המקורי).


1* קריטריון התיאום – תת השאילתה תרוץ לפי כמות הנתונים הייחודיים בשדה קריטריון התיאום.

2* שאילתה ראשית.

3* נתונים מתת השאילתה.

מותר לשים = ב-WHERE מעלה כיוון שהתוצאה של תת השאילתה היא ערך בודד.


שייך לנושאים: אריק אדלמן, מסדי נתונים


אחד × = 1

תואר ראשון
תואר שני
מרצים