בעת הכללת מקורות נתונים מרובים בשאילתה של Access, באפשרותך להשתמש בצירופים כדי להגביל את הרשומות שברצונך לראות, בהתבסס על הקשר בין מקורות הנתונים השונים. באפשרותך גם להשתמש בצירופים כדי לשלב רשומות משני מקורות הנתונים, כך שכל זוג רשומות מהמקורות הופך לרשומה אחת בתוצאות השאילתה.
מאמר זה דן בסוגים השונים של צירופים ומראה לך כיצד להשתמש בהם בשאילתה. כברירת מחדל, צירוף נוצר באופן אוטומטי אם כבר קיים קשר גומלין בין שני מקורות נתונים שבהם אתה משתמש בשאילתה. צירוף נוצר גם אם ישנם שדות שתואמים זה לזה בבירור. באפשרותך למחוק צירוף שנוצר באופן אוטומטי. מאמר זה מספק מידע בסיסי אודות קשרי גומלין בין טבלאות, כולל כיצד ליצור קשרי גומלין.
הערה
באפשרותך לצרף שאילתות באותו אופן שבו אתה מצרף טבלאות, ובאפשרותך גם לצרף את שתיהן.
במאמר זה
- מבט כולל
- סוגי צירופים
- הצגת שורות שבהן קיים ערך משותף בשתי הטבלאות המצורפות
- הצגת כל השורות מטבלה אחת והשורות התואמות מהטבלה השניה
- הצג את כל השורות משתי הטבלאות וצרף אותן כאשר קיים ערך משותף
- צירופים מוצלבים
- צירוף טבלאות בהתבסס על אי-שוויון בערכי שדות
- מחיקת צירוף
סקירה כללית
מסד נתונים הוא אוסף של טבלאות נתונים הנושאות קשרי גומלין לוגיים זו עם זו. קשרי גומלין משמשים לחיבור טבלאות לפי שדות משותפים. טבלה יכולה להיות חלק מכל מספר של קשרי גומלין, אך כל קשר גומלין כולל תמיד שתי טבלאות בדיוק. בשאילתה, קשר גומלין מיוצג על-ידי צירוף.
בעת הוספת טבלאות לשאילתה, Access יוצר צירופים המבוססים על קשרי גומלין שהוגדרו בין הטבלאות. באפשרותך ליצור צירופים בשאילתות באופן ידני, גם אם הם אינם מייצגים קשרי גומלין שכבר הוגדרו. אם אתה משתמש בשאילתות אחרות (במקום או בנוסף לטבלאות) כמקורות נתונים עבור שאילתה, באפשרותך ליצור צירופים בין שאילתות המקור, וכן בין שאילתות אלה לבין טבלאות שבהן אתה משתמש כמקורות נתונים.
צירופים פועלים בדומה לקריטריוני שאילתה בכך שהם קובעים כללים שהנתונים חייבים להתאים להם כדי להיכלל בפעולות השאילתה. בניגוד לקריטריונים, צירופים גם מציינים שכל זוג שורות העומד בתנאי הצירוף ישולב בערכת הרשומות ליצירת שורה בודדת.
קיימים ארבעה סוגים בסיסיים של צירופים: צירופים פנימיים, צירופים חיצוניים, צירופים מוצלבים וצירופים לא שווים. מאמר זה בוחן כל סוג של צירוף שבו באפשרותך להשתמש, מדוע עליך להשתמש בכל סוג וכיצד ליצור את הצירופים.
צירופים נועדו לשאילתות לגבי קשרי הגומלין לטבלאות: אינדיקציה לאופן שבו ניתן לשלב נתונים משני מקורות בהתבסס על ערכי נתונים משותפים. להלן איור של צירוף בתצוגת עיצוב שאילתה, כאשר מאפייני הצירוף פתוחים בתיבת דו-שיח:
קו זה בין הטבלאות מייצג את הצירוף. לחץ פעמיים על צירוף כדי לפתוח את תיבת הדו-שיח 'מאפייני צירוף ' (שמוצגת) ולסקור או לשנות את הצירוף.
צירופים הם לעתים כיווניים. אזור זה של תיבת הדו-שיח מראה לך איזו טבלה שייכת לצירוף ואילו שדות משמשים לצירוף הטבלאות.
אזור זה קובע את סוג הצירוף: אפשרות 1 היא צירוף פנימי, 2 היא צירוף חיצוני שמאלי ו- 3 היא צירוף חיצוני ימני.
ניתן להשתמש בשדות משתי הטבלאות, ומכל אחת מהן יוצגו נתונים הקשורים למשימה נתונה. בצירוף פנימי, לא נכללים נתונים אחרים. בצירוף חיצוני, רשומות לא קשורות מטבלה אחת נכללות גם הן בתוצאות השאילתה.
סוגי צירופים
קיימים ארבעה סוגים בסיסיים של צירופים: צירופים פנימיים, צירופים חיצוניים, צירופים מוצלבים וצירופים לא שווים. צירופים מוצלבים וצירופים לא שווים הם סוגי צירופים מתקדמים וכמעט שלא נעשה בהם שימוש, אך כדאי להכיר אותם כדי להבין היטב כיצד צירופים פועלים.
צירופים פנימיים: רק נתונים קשורים משתי הטבלאות משולבים
צירוף פנימי הוא צירוף שבו Access כולל נתונים מטבלה רק אם קיימים נתונים תואמים בטבלה המקושרת, ולהיפך. ברוב המקרים, תשתמש בצירופים פנימיים. כאשר אתה יוצר צירוף ואינך מציין מהו סוג הצירוף, Access מניח שאתה מעוניין בצירוף פנימי. צירופים פנימיים שימושיים מאחר שהם מאפשרים לך לשלב נתונים משני מקורות בהתבסס על ערכים משותפים - כך שתוכל לראות נתונים רק כאשר יש תמונה מלאה.
צירופים חיצוניים: כל הנתונים הקשורים משולבים כראוי, בתוספת כל הרשומות הנותרות מטבלה אחת
צירוף חיצוני דומה לצירוף פנימי, אך הוא מוסיף את השורות הנותרות מאחת הטבלאות. צירופים חיצוניים הם כיווניים: צירוף חיצוני שמאלי כולל את כל הרשומות מהטבלה השמאלית - הטבלה הראשונה בצירוף - וצירוף חיצוני ימני כולל את כל הרשומות מהטבלה הימנית - הטבלה השניה בצירוף.
צירופים חיצוניים מלאים: כל הנתונים, משולבים במידת האפשר
במערכות מסוימות, צירוף חיצוני יכול לכלול את כל השורות משתי הטבלאות, כאשר השורות משולבות כאשר הן מתאימות. פעולה זו נקראת צירוף חיצוני מלא, ו- Access אינו תומך בהם במפורש. עם זאת, באפשרותך להשתמש בצירוף מוצלב ובקריטריונים כדי להשיג את אותו אפקט.
צירופים מוצלבים: כל הנתונים, משולבים בכל דרך אפשרית
ברוב המקרים, צירוף מוצלב הוא תופעת לוואי של הוספת שתי טבלאות לשאילתה ולאחר מכן שכחת לצרף אותן. Access מפרש זאת כאילו ברצונך לראות כל רשומה מטבלה אחת משולבת עם כל רשומה מהטבלה השניה - כל שילוב אפשרי של רשומות. מכיוון שלא ניתן לשלב נתונים, צירוף מסוג זה מניב רק לעתים רחוקות תוצאות שימושיות. אך ישנם כמה מקרים שבהם צירוף מוצלב הוא בדיוק מה שדרוש לך.
צירופים לא שווים: כמו צירוף רגיל, אך שימוש בהשוואה אחרת לשילוב שורות
צירופים שאינם שווים משתמשים באופרטור שאינו סימן השוויון (=) כדי להשוות בין ערכים ולקבוע אם וכיצד לשלב את הנתונים. צירופים לא שווים אינם נתמכים במפורש, אך ניתן להשתמש בצירוף מוצלב ובקריטריונים כדי להשיג את אותו אפקט.
הצגת שורות שבהן קיים ערך משותף בשתי הטבלאות המצורפות
אם ברצונך להציג רק את השורות שיש להן ערכים תואמים בשדה המצורף, השתמש בצירוף פנימי. Access יוצר צירופים פנימיים באופן אוטומטי.
צירופים פנימיים הם הסוג הנפוץ ביותר של צירוף. הם אומרים לשאילתה ששורות מאחת הטבלאות המצורפות תואמות לשורות בטבלה השניה, על בסיס הנתונים בשדות המצורפים. בעת הפעלת שאילתה עם צירוף פנימי, רק השורות שבהן קיים ערך משותף בשתי הטבלאות המצורפות ייכללו בפעולות השאילתה.
כיצד ניתן לבצע להשתמש בצירוף פנימי?
ברוב המקרים אינך צריך לעשות דבר כדי להשתמש בצירוף פנימי. אם לטבלאות שאתה מוסיף לשאילתה יש כבר קשרי גומלין, Access יוצר באופן אוטומטי צירוף פנימי בין כל זוג של טבלאות קשורות בעת הוספת הטבלאות. אם נאכפת שלמות הקשרים, Access מציג גם "1" מעל קו הצירוף כדי להראות איזו טבלה נמצאת בצד ה"יחיד" של קשר גומלין של יחיד לרבים וסמל אינסוף (∞) כדי להראות איזו טבלה נמצאת בצד ה"רבים".
גם אם לא יצרת קשרי גומלין, Access יוצר באופן אוטומטי צירופים פנימיים אם אתה מוסיף שתי טבלאות לשאילתה, וכל אחת מהן מכילה שדה עם סוג נתונים זהה או תואם ואחד משדות הצירוף הוא מפתח ראשי. הסימנים "יחיד" ו"רבים" אינם מוצגים במקרה זה, מאחר ששלמות הקשרים אינה נאכפת.
אם אתה מוסיף שאילתות לשאילתה שלך ועדיין לא יצרת קשרי גומלין בין שאילתות אלה, Access אינו יוצר באופן אוטומטי צירופים פנימיים בין השאילתות הללו או בין שאילתות וטבלאות. בדרך כלל, עליך ליצור אותם בעצמך. ניתן ליצור צירוף פנימי על-ידי גרירת שדה ממקור נתונים אחד לשדה במקור נתונים אחר. Access מציג קו בין שני השדות כדי לציין שנוצר צירוף.
תחביר SQL עבור צירוף פנימי
צירופים פנימיים מצוינים ב- SQL במשפט FROM, כפי שמוצג להלן:
FROM table1 INNER JOIN TABLE2 ON TABLE1. field1 השווה טבלה2. field2
פעולת INNER JOIN כוללת חלקים אלה:
| חלק | תיאור |
|---|---|
| table1, table2 | שמות הטבלאות שמתוכן משולבות רשומות. |
| field1, field2 | שמות השדות המצורפים. אם השדות אינם מספריים, הם צריכים להיות בעלי סוג נתונים זהה ולהכיל נתונים מאותו סוג, אך הם אינם חייבים להיות בעלי שם זהה. |
| השווה | כל אופרטור השוואה יחסי: "=," "<," ">," "<=," "=," או> "."<> |
לקבלת מידע נוסף אודות תחביר INNER JOIN, עיין בנושא פעולת INNER JOIN.
הצגת כל השורות מטבלה אחת והשורות התואמות מהטבלה השניה
צירופים חיצוניים אומרים לשאילתה שלמרות שחלק מהשורות בשני צדי הצירוף תואמות באופן מדויק, השאילתה צריכה לכלול את כל השורות מטבלה אחת וכן את השורות מהטבלה האחרת שיש להן ערך משותף בשני צדי הצירוף.
צירופים חיצוניים יכולים להיות צירופים חיצוניים שמאליים או צירופים חיצוניים ימניים. בצירוף חיצוני שמאלי, השאילתה כוללת את כל השורות מהטבלה הראשונה במשפט FROM של משפט SQL, ורק את השורות מהטבלה האחרת שבהן שדה הצירוף מכיל ערכים משותפים לשתי הטבלאות. בצירוף חיצוני ימני, השאילתה כוללת את כל השורות מהטבלה השניה במשפט FROM של משפט SQL, ורק את השורות מהטבלה האחרת שבהן שדה הצירוף מכיל ערכים משותפים לשתי הטבלאות.
הערה
באפשרותך לדעת בקלות איזו טבלה היא הטבלה השמאלית או הימנית בצירוף נתון על-ידי לחיצה כפולה על הצירוף והתבוננות בתיבת הדו-שיח ' מאפייני צירוף '. באפשרותך גם לעבור לתצוגת SQL ולאחר מכן לבחון את הפסוקית FROM.
מאחר שחלק מהשורות בצד אחד של צירוף חיצוני לא יכללו שורות תואמות מהטבלה האחרת, חלק מהשדות שיוחזרו בתוצאות השאילתה מטבלה אחרת זו יהיו ריקים כאשר השורות אינן תואמות.
כיצד ניתן לבצע להשתמש בצירוף חיצוני?
ניתן ליצור צירוף חיצוני על-ידי שינוי צירוף פנימי קיים. אם לא קיים צירוף פנימי, צור צירוף ולאחר מכן שנה אותו לצירוף חיצוני.
שינוי צירוף פנימי לצירוף חיצוני
- בתצוגת עיצוב שאילתה, לחץ פעמיים על הצירוף שברצונך לשנות.
תיבת הדו-שיח מאפייני הצירוף תופיע. - בתיבת הדו-שיח 'מאפייני צירוף ', שים לב לאפשרויות המפורטות לצד אפשרות 2 ואפשרות 3.
- לחץ על האפשרות שבה ברצונך להשתמש ולאחר מכן לחץ על אישור.
- Access מציג את הצירוף ומציג חץ שמצביע ממקור הנתונים שבו ייכללו כל השורות למקור הנתונים שבו ייכללו רק השורות הממלאות את תנאי הצירוף.
צירופים חיצוניים רב-משמעיים
אם תיצור שאילתה המכילה LEFT JOIN וציוני INNER JOIN, ייתכן ש- Access לא יוכל לקבוע איזו פעולת צירוף יש לבצע תחילה. מאחר שהתוצאות שונות בהתאם לביצוע הראשון של הצירוף השמאלי או הצירוף הפנימי, Access מציג הודעת שגיאה:
כדי לתקן שגיאה זו, עליך לשנות את השאילתה כך שיהיה ברור איזה צירוף לבצע תחילה.
תחביר SQL עבור צירוף חיצוני
צירופים חיצוניים מצוינים ב- SQL במשפט FROM, כפי שמוצג להלן:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 compare table2.field2
פעולות LEFT JOIN ו- RIGHT JOIN כוללות חלקים אלה:
| חלק | תיאור |
|---|---|
| table1, table2 | שמות הטבלאות שמתוכן משולבות רשומות. |
| field1, field2 | שמות השדות המצורפים. השדות צריכים להיות בעלי סוג נתונים זהה ולהכיל את אותו סוג נתונים, אך הם אינם חייבים להיות בעלי שם זהה. |
| השווה | כל אופרטור השוואה יחסי: "=," "<," ">," "<=," "=," או> "."<> |
לקבלת מידע נוסף אודות תחביר צירוף חיצוני, עיין בנושא פעולות צירוף שמאלי, פעולות צירוף ימני.
הצג את כל השורות משתי הטבלאות וצרף אותן כאשר קיים ערך משותף
כאשר ברצונך להציג את כל השורות משתי טבלאות ולצרף ביניהן בהתבסס על ערכים משותפים, עליך להשתמש בצירוף חיצוני מלא. Access אינו תומך באופן מפורש בצירופים חיצוניים מלאים, אך ניתן להשיג את אותו אפקט באמצעות שאילתת איחוד. ההליך הבא מסביר כיצד לעשות זאת, אך אם ברצונך לקבל מידע נוסף אודות שאילתות איחוד, עיין בסעיף 'למידע נוסף '.
כדי להשתמש בשאילתת איחוד לביצוע צירוף חיצוני מלא:
צור שאילתה בעלת צירוף חיצוני שמאלי בשדה שבו ברצונך להשתמש עבור צירוף חיצוני מלא.
בכרטיסיה בית, בקבוצה תצוגות, לחץ על תצוגה ולאחר מכן לחץ על תצוגת SQL.
הקש CTRL+C כדי להעתיק את קוד ה- SQL.
מחק את תו הנקודה-פסיק בסוף המשפט FROM ולאחר מכן הקש ENTER.
הקלד UNION ולאחר מכן הקש ENTER.
הערה
אל תשתמש במילת המפתח ALL בעת שימוש בשאילתת איחוד כדי לבצע צירוף חיצוני מלא.
הקש CTRL+V כדי להדביק את קוד ה- SQL שהעתקת בשלב 3.
בקוד שהדבקת, שנה את LEFT JOIN ל- RIGHT JOIN.
מחק את תו הנקודה-פסיק בסוף משפט FROM השני ולאחר מכן הקש ENTER.
הוסף משפט WHERE המציין כי הערך של שדה הצירוף הוא NULL בטבלה הראשונה המופיעה בפסוקית FROM (הטבלה הימנית).
לדוגמה, אם משפט FROM הוא:FROM Products RIGHT JOIN [Order Details] ON Products.ID = [Order Details].[Product ID]עליך להוסיף את משפט WHERE הבא:
WHERE Products.ID IS NULLהקלד תו נקודה-פסיק (;) בסוף משפט WHERE כדי לציין את סוף שאילתת האיחוד.
בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.
צירופים מוצלבים
צירופים מוצלבים שונים מצירופים פנימיים וחיצוניים בכך שהם אינם מיוצגים באופן מפורש ב- Access. בצירוף מוצלב, כל שורה מטבלה אחת משולבת עם כל שורה מטבלה אחרת, והתוצאה היא מה שנקרא מכפלה צולבת או מכפלה קרטזית. בכל פעם שתפעיל שאילתה המכילה טבלאות שאינן מצורפות באופן מפורש, התוצאה היא מכפלה מוצלבת. צירופים מוצלבים הם בדרך כלל לא מכוונים, אך יש מקרים שבהם הם עשויים להיות שימושיים.
מדוע כדאי להשתמש בצירוף מוצלב?
אם ברצונך לבחון כל שילוב אפשרי של שורות בין שתי טבלאות או שאילתות, השתמש בצירוף מוצלב. לדוגמה, נניח שלעסק שלך הייתה שנה מדהימה, ואתה שוקל להעניק הנחות ללקוחות שלך. באפשרותך לבנות שאילתה המסכמת את הרכישות של כל לקוח, ליצור טבלה קטנה המכילה כמה אחוזי החזר אפשריים ולשלב את השניים בשאילתה אחרת שמבצעת צירוף מוצלב. בסופו של דבר מתקבלת שאילתה המציגה קבוצה של הנחות היפותטיות עבור כל לקוח.
כיצד ניתן לבצע להשתמש בצירוף מוצלב?
צירוף מוצלב נוצר בכל פעם שאתה כולל טבלאות או שאילתות בשאילתה שלך, ואינך יוצר לפחות צירוף מפורש אחד עבור כל טבלה או שאילתה. Access משלב כל שורה מכל טבלה או שאילתה שאינה מצורפת באופן מפורש לטבלה או לשאילתה אחרת לכל שורה שניה בתוצאות. שקול את תרחיש ההנחה מהפיסקה הקודמת. נניח שיש לך 91 לקוחות וברצונך לבחון חמישה אחוזי הנחה אפשריים. הצירוף המוצלב מפיק 455 שורות (המכפלה של 91 ו- 5).
כפי שניתן לדמיין, צירופים מוצלבים לא מכוונים יכולים ליצור מספר עצום של שורות בתוצאות השאילתה שלך. יתר על כן, תוצאות אלה הן בדרך כלל חסרות משמעות, מכיוון שאם אין בכוונתך לשלב כל שורה עם כל שורה שנייה, רוב השורות המשולבות שמופיעות בתוצאות לא יהיו הגיוניות. לבסוף, שאילתות המשתמשות בצירופים מוצלבים לא מכוונים עשויות להימשך זמן רב מאוד.
1. השדות המעוגלים צריכים להיות מצורפים זה לזה.
1. שים לב למספר הרשומות הגדול מאוד.
1. שים לב שמספר הרשומות קטן בהרבה.
צירוף טבלאות בהתבסס על אי-שוויון בערכי שדות
צירופים אינם חייבים להתבסס על השקילות של השדות המצורפים. צירוף יכול להתבסס על כל אופרטור של השוואה, כגון גדול מ- (>), קטן מ- (<), או לא שווה (<>). צירופים שאינם מבוססים על שקילות נקראים צירופים לא שווים.
אם ברצונך לשלב את השורות של שני מקורות נתונים בהתבסס על ערכי שדה שאינם שווים, השתמש בצירוף לא שווה. בדרך כלל, צירופים לא שווים מבוססים על אופרטורים של השוואה הגדולים מ- (>), קטנים מ- (<), גדולים או שווים ל- (>=) או קטנים או שווים ל- (<=). צירופים לא שווים המבוססים על האופרטור does not equal (<>) יכולים להחזיר כמעט את מספר השורות כמספר הצירופים המוצלב, וייתכן שהתוצאות יהיו קשות לפירוש.
כיצד ניתן לבצע להשתמש בצירוף לא שווה?
צירופים שאינם שווים אינם נתמכים בתצוגת עיצוב. אם ברצונך להשתמש בהם, עליך לעשות זאת באמצעות תצוגת SQL. עם זאת, באפשרותך ליצור צירוף בתצוגת עיצוב, לעבור לתצוגת SQL, לחפש את אופרטור ההשוואה של שוויון (=) ולשנות אותו לאופרטור שבו ברצונך להשתמש. לאחר ביצוע פעולה זו, תוכל לפתוח שוב את השאילתה בתצוגת עיצוב רק אם תשנה תחילה את אופרטור ההשוואה בחזרה לשווה (=) בתצוגת SQL.
מחיקת צירוף
אם Access יוצר באופן אוטומטי צירוף בלתי רצוי, או אם יצרת צירוף בטעות - לדוגמה, צירוף בין שני שדות בעלי סוגי נתונים שונים - באפשרותך למחוק את הצירוף.
- ברשת עיצוב השאילתה, לחץ על הצירוף שברצונך להסיר.
- הקש DELETE.
-לחלופין-
- ברשת עיצוב השאילתה, לחץ באמצעות לחצן העכבר הימני על הצירוף שברצונך להסיר ולאחר מכן לחץ על מחק.
הוספת רשומות לטבלה באמצעות שאילתת הוספהשילוב תוצאות של מספר שאילתות בחירה באמצעות שאילתת איחודיצירת שאילתה המבוססת על טבלאות מרובותיצירה, עריכה או מחיקה של קשר גומלין