Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Help with SQL statement (JOIN)

Tags:

sql

join

I'm having some trouble with an SQL statement that have to find the number of students attending a course. My Database design look likes this:

Table Course: id | course_name

Table Student: id | name

And to connect the two many-to-many relationship I've an table:

Table course_student: id | course_id | student_id

What I want is to find out how many students are attending the course named "Database Design". I know that the ID is "1" but let’s say that I didn't knew, how would my SQL statement look like?

I have tried several different statements with different joins to first select the correct ID from the course table, where the name is "Database Design" and next I've to search in my course_student table where the course_id equal the founded id (in this case 1) and where all student_id is connected to this id.

I know it is a bit complex description so please tell me if I have to explain it in a better way.

Thanks Mestika

like image 433
Emil Devantie Brockdorff Avatar asked Mar 11 '10 14:03

Emil Devantie Brockdorff


1 Answers

You can try something like

SELECT  COUNT(cs.student_id)
FROM    Course c INNER JOIN
        course_student cs ON c.id = cs.course_id
WHERE   c.course_name = 'Database Design'

You dont have to join to the Students table as you already have the ID in the course_student table, so 1 less join.

like image 99
Adriaan Stander Avatar answered Oct 11 '22 14:10

Adriaan Stander