Menu
CoddyTech

JOIN בסיסי חלק 1

חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 43 מתוך 72.

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

נניח שיש לנו את הטבלאות הבאות:

קורסים

course_idlecturer_id
11
21
32

מרצים

lecturer_idשם
1Jhonas
2Malidos

המשימה היא להציג כל קורס לצד שם המרצה המתאים.

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

course_idlecturer_name
1Jhonas
2Jhonas
3Malidos

אפשרות 1:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_id

כאן אנחנו כותבים שתי טבלאות במילת המפתח FROM, ובתנאי WHERE אנחנו מבקשים שהערך של lecturer_id בשתי הרשומות יהיה זהה. בתנאי SELECT אנחנו כותבים עכשיו table.column כדי שמסד הנתונים ידע מאיזו טבלה לשלוף את העמודה.

אפשרות 2:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_id

במקום WHERE משתמשים ב־JOIN table ON condition

שתי האפשרויות נותנות את אותה תוצאה ונקראות צירוף פנימי: רק זוגות של שורות שעומדים בתנאי משולבים.

challenge icon

אתגר

קל

טבלאות ועמודות זמינות:

  • grades: course_id, student_id, grade
  • students: id, name

צרו שאילתה שמביאה את student_name, את course_id, את student_id ואת grade בטבלה אחת. סדרו את התוצאה לפי הציון בסדר עולה.

נסו בעצמכם

-- הצג את העמודות המבוקשות במשימה, תוך שימוש בכינוי המבוקש
SELECT ____
FROM students, grades
-- השאר רק את זוגות השורות שבהם שתי הטבלאות מתארות את אותו אדם
WHERE ____
ORDER BY grade
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: SQL אונליין