SQL Join בתנאים מרובים

Sql Join Btn Ym Mrwbym



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

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







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



SQL מצטרפים בתנאים מרובים

אנו יכולים לציין מספר תנאים באמצעות האופרטורים AND או OR ב-SQL. אופרטורים אלו מאפשרים לנו להגדיר קבוצה של ביטויים בוליאניים אשר לאחר מכן מוערכים ומשווים מול הסט המתקבל.



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





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

הפונקציונליות של האופרטורים AND ו-OR אינה משתנה אפילו במקרה של חיבורים ל-SQL.



דוגמה של SQL Multiple Joins

כדי להבין איך עובדים עם חיבורים בתנאים מרובים, עדיף לעבוד עם דוגמה.

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

נניח שאנו רוצים להביא את הנתונים מהסרט וטבלאות film_actor. ראשית, אנחנו רוצים למצוא את כל השחקנים שכיכבו בסרט שדורגו PG או PG-13 ואורכם בין 90 ל-120.

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

בחר actor.first_name, actor.last_name, film.title, film.release_year, film.rating
משחקן
הצטרף ל-film_actor ON actor.actor_id = film_actor.actor_id
הצטרף לסרט ב-film_actor.film_id = film.film_id
WHERE film.length BETTWEEN 90 ו 120
AND film.rating IN ( 'PG' , 'PG-13' ) ;


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

הטבלה המתקבלת היא כדלקמן:


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

בחר film.title, film.rental_rate, category.name
מסרט
הצטרף ל-film_category ON film.film_id = film_category.film_id
הצטרף לקטגוריה ב-film_category.category_id = category.category_id
WHERE category.name IN ( 'פעולה' , 'קוֹמֶדִיָה' )
AND film.rental_rate > 3.00 ;


הטבלה המתקבלת היא כדלקמן:

סיכום

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