זהו מאמר אחד מתוך סדרה של מאמרים בנושא Access SQL. מאמר זה מתאר כיצד לכתוב פסוקית FROM, ומשתמש בדוגמאות כדי להמחיש טכניקות שונות שבהן תוכל להשתמש בפסוקית FROM.
במשפט SELECT, ציין את מקורות הנתונים בפסוקית FROM. הפסוקית FROM עשויה אף להכיל פעולת JOIN. השתמש בפעולת JOIN כדי להתאים ולשלב נתונים משני מקורות נתונים, כגון שתי טבלאות או טבלה ושאילתה.
למבט כולל על Access SQL, עיין במאמר Access SQL: מושגים בסיסיים, אוצר מילים ותחביר.
במאמר זה
ציון מקורות הנתונים
במשפט SELECT, הפסוקית FROM מציינת את הטבלאות או השאילתות שמכילות את הנתונים שבה ישתמש משפט SELECT.
נניח שברצונך לדעת את מספר הטלפון של לקוח ספציפי. בהנחה שהטבלה שמכילה את השדה המאחסן נתונים אלה נקראת tblCustomer, פסוקית FROM תיראה בערך כך:
FROM tblCustomer
באפשרותך לתחום את השם בסוגריים מרובעים. אם השם לא מכיל רווחים או תווים מיוחדים כלשהם (כגון סימני ניקוד), הסוגריים המרובעים הם אופציונליים. אם השם מכיל רווחים או תווים מיוחדים, עליך להשתמש בסוגריים מרובעים.
עצה: שם שמכיל רווחים קל יותר לקריאה ועשוי לחסוך לך זמן בעת עיצוב טפסים ודוחות, אך ייתכן שתמצא את עצמך מקליד יותר כאשר תכתוב משפטי SQL. עליך לשקול עובדה זו כשאתה מעניק שמות לאובייקטים במסד הנתונים של Access.
השתמש בשמות חלופיים עבור מקורות נתונים
באפשרותך להשתמש בשם שונה כדי להפנות לטבלה במשפט SELECT, על-ידי שימוש בכינוי טבלה בפסוקית ה- FROM. כינוי טבלה הוא שם שאותו תקצה למקור נתונים בשאילתה כאשר אתה משתמש בביטוי כמקור נתונים, או כדי להקל על ההקלדה והקריאה של משפט ה- SQL. אפשרות זו שימושית במיוחד אם השם של מקור הנתונים ארוך או קשה להקלדה, במיוחד כשיש שדות מרובים בעלי שם זהה בטבלאות שונות.
לדוגמה, אם ברצונך לבחור נתונים משני השדות, ששניהם נקראים 'מזהה', אחד מהם מגיע מהטבלה tblCustomer והשני מגיע מהטבלה tblOrder, פסוקית SELECT תיראה בערך כך:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
השימוש בכינויי טבלה בפסוקית FROM יקל עליך בהקלדת השאילתה. פסוקית FROM עם כינויי הטבלה, תיראה בערך כך:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
לאחר מכן תוכל להשתמש בכינויי טבלאות אלה במשפט SELECT, כמו בדוגמה זו:
SELECT [C].[ID], [O].[ID]
הערה: כאשר תשתמש בכינוי טבלה, תוכל להפנות לטבלה במשפט SQL באמצעות הכינוי או באמצעות שם הטבלה המלא.
צירוף נתונים קשורים
כאשר עליך למצוא דרך לשלב זוגות של רשומות משני מקורות נתונים לרשומות בודדות בתוצאת שאילתה, באפשרותך לבצע צירוף. צירוף הוא פעולה של SQL שמציין כיצד שני מקורות נתונים קשורים זה לזה והאם נתונים ממקור אחד צריכים להיכלל כאשר אין נתונים תואמים מהמקור השני.
כדי לשלב את המידע משני מקורות נתונים, באפשרותך לבצע פעולה צירוף בשדה המשותף לשניהם. כאשר הערכים המאוחסנים בשדה זה תואמים, הנתונים מהרשומות משולבים בתוצאות.
בנוסף לשילוב נתונים, באפשרותך גם להשתמש בצירוף כדי לציין אם לכלול רשומות מאחת הטבלאות כאשר אין רשומה תואמת בטבלה המקושרת.
לדוגמה, נניח שברצונך להשתמש בנתונים משתי טבלאות בשאילתה: tblCustomer ו- tblOrder. שתי הטבלאות מכילות שדה, CustomerID, שמזהה לקוח. לכל רשומה בטבלה tblCustomer עשויה להיות רשומה תואמת אחת או יותר בטבלה tblOrder, ואת הערכים התואמים ניתן לקבוע לפי הערכים בשדה CustomerID.
אם ברצונך לצרף את הטבלאות כך שהשאילתה תשלב את שתי הרשומות מהטבלאות, למעט רשומות מכל אחת מהטבלאות שאין להן רשומה תואמת בטבלה השנייה, פסוקית FROM שלך תיראה בערך כך (הוספנו מעבר שורה כדי להקל על הקריאה):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
ב- Access, צירופים מתרחשים בפסוקית FROM של משפט SELECT. קיימים שני סוגים של צירופים: צירופים פנימיים וצירופים חיצוניים. הסעיפים הבאים מסבירים שני סוגי צירופים אלה.
צירופים פנימיים
צירופים פנימיים הם הסוג הנפוץ ביותר של צירוף. בעת הפעלת שאילתה עם צירוף פנימי, הרשומות הנכללות בתוצאות השאילתה הן רק הרשומות שבהו קיים ערך משותף בשתי הטבלאות המצורפות.
צירוף פנימי מבוסס על התחביר הבא (הוספנו מעבר שורה כדי להקל על הקריאה):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
הטבלה הבאה מתארת את החלקים השונים של פעולת INNER JOIN.
חלק |
תיאור |
table1, table2 |
שמות הטבלאות שמתוכן משולבות רשומות. |
field1, field2 |
שמות השדות המצורפים. אם השדות אינם מספריים, הם צריכים להיות בעלי סוג נתונים זהה ולהכיל נתונים מאותו סוג, אך הם אינם חייבים להיות בעלי שם זהה. |
compopr |
כל אופרטור השוואה יחסי: "=", "<", ">", "<=", ">=" או "<>". |
צירופים חיצוניים
צירופים חיצוניים דומים לצירופים פנימיים מאחר שהם אומרים לשאילתה כיצד לשלב את המידע משני מקורות. הם שונים מכיוון שהם מציינים גם אם יש לכלול נתונים כאשר לא קיימים ערכים משותפים. צירופים חיצוניים הם כיווניים: באפשרותך לציין אם לכלול את כל הרשומות ממקור הנתונים הראשון שצוין בצירוף (נקרא הצירוף השמאלי), או לכלול את כל הרשומות ממקור הנתונים השני בצירוף (נקרא הצירוף הימני).
צירוף חיצוני מבוסס על התחביר הבא:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2הטבלה הבאה מתארת את החלקים השונים של פעולות LEFT JOIN ו- RIGHT JOIN.
חלק |
תיאור |
table1, table2 |
שמות הטבלאות שמתוכן משולבות רשומות. |
field1, field2 |
שמות השדות המצורפים. השדות חייבים להיות בעלי סוג נתונים זהה ולהכיל נתונים מאותו סוג, אך הם אינם צריכים להיות בעלי שם זהה. |
compopr |
כל אופרטור השוואה יחסי: "=", "<", ">", "<=", ">=" או "<>". |
לקבלת מידע נוסף על צירופים, עיין במאמר צירוף טבלאות ושאילתות.