הצטרפו ל-SQL Subquery עם Outer Query

Hztrpw L Sql Subquery M Outer Query



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

אחת התכונות החזקות ביותר של SQL היא שאילתות משנה. שאילתות משנה הן קבוצה של שאילתות מקוננות בתוך שאילתה גדולה ומורכבת יותר. שאילתות משנה מאפשרות לך לאחזר את הנתונים או לבצע פעולות מורכבות יותר כישות אחת.







אנו יכולים להשתמש בשאילתות המשנה כדי לבצע סינון נתונים, מיון, צבירה במספר טבלאות ועוד.



עם זאת, תכונה נוספת המוסתרת תחת שאילתות משנה של SQL ידועה בתור צירוף שאילתות משנה. אלה דומים לשאילתות משנה; במקום זאת, הם צירופים המאפשרים לך להשתמש בשאילתות המשנה בתוך שאילתה חיצונית כדי לחבר את הטבלאות יחד.



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





זכור שאנו מניחים שאינך חדש ב-SQL, ב-SQL Joins, ב-SQL Subqueries או כאלה. עם זאת, אם כן, בדוק את ההדרכות שלנו בנושאים כדי לגלות עוד.

שליטה ב-SQL Outer Joins

אם אתה רוצה להבין איך לעבוד עם צירופים של שאילתות משנה, ללמוד איך לעבוד עם החיבורים החיצוניים הוא גורם מפתח.



אם אינך מכיר, צירוף חיצוני של SQL מאפשר לך להביא את כל השורות מטבלה אחת ואת השורות התואמות מהטבלה השנייה. זה קצת יותר מורכב מזה, כולל החיבור החיצוני השמאלי, החיבור החיצוני הימני, החיבור החיצוני המלא וכו'.

ב-SQL שמאלית חיצונית, השאילתה מחזירה את כל השורות מהטבלה השמאלית ואת השורות התואמות מהטבלה הימנית. השאילתה כוללת את ערכי NULL בעמודות המתקבלות אם אין שורות תואמות בטבלה הימנית.

במקרה של חיבור חיצוני ימני, השאילתה מחזירה את כל השורות מהטבלה הימנית אך רק את השורות התואמות מהטבלה השמאלית. באופן דומה, השאילתה כוללת את ערכי NULL אם אין שורות תואמות מהטבלה השמאלית.

לבסוף, יש לנו את החיבור החיצוני המלא. צירוף זה מחזיר את כל השורות מהטבלה הימנית והשמאלית ואת ערכי NULL עבור כל רשומה שאינה תואמת.

מצטרף לשאילתת משנה של SQL

כעת, לאחר שהבנו את שאילתות המשנה של SQL, בואו נדבר על הצטרפות לשאילתות משנה. הצטרפות לשאילתות משנה מאפשרות לנו להשתמש בשאילתות המשנה בתוך שאילתה חיצונית כדי להצטרף לטבלאות.

אם אתה שואל, זה זה? כן, זה כל מה שהצטרפות לשאילתות משנה עושות.

כדי להדגים זאת טוב יותר, קח את דוגמה התחביר הבאה המודגם בקטע הבא:

בחר *
מטבלה 1
הצטרפו שמאל חיצוני (
בחר עמודה 1, עמודה 2
מטבלה 2
) שאילתת משנה AS
ON table1.column3 = subquery.column1;


בתחביר הקודם, אנו בוחרים את כל העמודות מהטבלה הראשונה באמצעות צירוף חיצוני שמאלי כדי להצטרף אליה עם שאילתת משנה. תפקידה של שאילתת המשנה הוא להביא את העמודות המוגדרות מטבלה 2. לאחר מכן נחבר אותה עם טבלה 1 בתנאי של עמודה 2 מטבלה 1 ועמודה 1 מתת-השאילתה.

דוגמה מעשית:

תיאורטית, זה נראה פחות אינטואיטיבי, אבל הבה ניקח תרחיש של העולם האמיתי על ידי נטילת מסד הנתונים של Sakila.

נניח שאנו רוצים לאחזר את רשימת כל הסרטים במאגר ואת השפות שלהם. שפות הסרטים מאוחסנות בטבלת השפות, ושמות הסרטים מאוחסנים בטבלת הסרטים.

עם זאת, לטבלת הסרט יש מפתח זר שנקרא העמודה 'language_id' מטבלת השפה. לכן, אנו יכולים להשתמש בצירוף של שאילתת משנה עם צירוף חיצוני שמאלי כדי לחבר את שתי הטבלאות יחד, כפי שמוצג בשאילתה הבאה:

SELECT f.title, l.name AS language
מתוך הסרט f
הצטרפו שמאל חיצוני (
SELECT language_id, שם
משפה
) AS l
ON f.language_id = l.language_id;


בשאילתת הדוגמה הקודמת, אנו בוחרים את עמודת הכותרת מטבלת הסרט ואת עמודת השמות מטבלת השפה.

לאחר מכן אנו משתמשים בשאילתת משנה כדי לבחור את language_id ואת עמודת השם מטבלת השפות. השלב הבא הוא לצרף אותו לטבלת הסרט בתנאי שהשפה_מזהה מטבלת הסרט שווה לשפה_מזהה מטבלת השפה.

כדי להבטיח שכל הסרטים ייכללו בתוצאה, עלינו להשתמש בחיבור החיצוני השמאלי שמורכב מכל התוצאות מהטבלה השמאלית, שבמקרה זה היא טבלת הסרט.

פלט לדוגמה הוא כדלקמן:


אנחנו יכולים לעשות את אותו הדבר גם עם חיבור חיצוני ימני. התחביר הוא כדלקמן:

בחר *
מטבלה 1
חיבור חיצוני ימני (
בחר עמודה 1, עמודה 2
מטבלה 2
) שאילתת משנה AS
ON table1.column3 = subquery.column1;


זה מתנהג באופן דומה אבל כולל את כל הרשומות בטבלה הימנית גם אם אין רשומות תואמות.

דברים שימושיים שכדאי לדעת

טוב להבין שלמרות שההצטרפות לשאילתות המשנה שימושיות להפליא ויכולות לייעל את זרימת העבודה שלך, השתמש בהן בזהירות.

לדוגמה, הימנע משימוש בצירופים של שאילתת המשנה עם מערך נתונים גדול. הסיבה לכך היא שהם יכולים להחזיר את הרשומות הנרחבות שיכולות להשפיע על ביצועי מסד הנתונים.

שקול להשתמש בכלי ניתוח השאילתות לפני ביצוע צירוף שאילתת משנה.

סיכום

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