אשכול: שאלה בSQL
View Single Post
ישן 13-01-09, 10:52   # 6
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 37
הודעות: 710

vadimg88 לא מחובר  

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

למה זה טוב? דבר ראשון זה מונע ממך לבצע כמה שאילתות כל פעם אחת אחרת. אפשר היה לעשות שאילתה של SELECT שמחזירה את ה ID ואז עם ה ערך של ה ID לבצע שאילתת DELETE נוספת. זה יגרום לביצוע של 2 שאילתות (שזה מיותר מבחינת אופטימיזציה) לעומת ביצוע שאילתה אחת שמבצעת שאילתה נוספת פנימית. בדרך כלל MYSQL מריץ את השאילתה הזאת בתור שאילתה אחת ולא מחלק אותה לכמה שאליתות, (בניגוד ל joins ו ו unions ).
עוד דבר שלפעמים נותן יתרון זה ש sub queries (תתי שאילתות) כתובות בצורה קריאה יותר מאשר ה JOINS ו UNIONS למיניהם.
  Reply With Quote