SQL to show the course name for each person

Viewed 49

I seek SQL that will show the course name for each person.

SELECT * FROM person_course

person course course_version_number
1 BA101 1
2 BA201 1
3 BA221 2
4 BA101 1
5 BA101 1
6 BA221 1
7 BA201 2
8 BA221 2
9 BA221 2

SELECT * FROM course

course course_name course_version_number
BA101 AA 1
BA201 BB 1
BA201 CC 2
BA221 DD 1
BA221 EE 2

Is the query below correct?

SELECT person_course.person, course.course_name
FROM  person_course
INNER JOIN course on person_course.course=course.course
AND course on person_course. course_version_number = course .course_version_number ;

Can I use an INNER JOIN condition with AND? The SQL query logic should derive a combination of course & course_version_number to find the name of course against person.

1 Answers
SELECT PC.person, C.course_name
FROM  person_course PC
INNER JOIN course C on PC.course=C.course
  AND PC.course_version_number = C.course_version_number ;
Related