Menu
Coddy logo textTech

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 אונליין