帮助SQL语句(JOIN)

时间:2010-03-11 14:06:22

标签: sql join

我在使用必须查找参加课程的学生人数的SQL语句时遇到了一些麻烦。 我的数据库设计看起来像这样:

课程: id | COURSE_NAME

学生: id |名称

为了连接两个多对多的关系,我有一张桌子:

course_student: id | course_id | student_id数据

我想要的是找出有多少学生参加名为“数据库设计”的课程。我知道ID是“1”但是我说我不知道​​,我的SQL语句会是什么样子?

我尝试了几种不同联接的不同语句,首先从课程表中选择正确的ID,其中名称为“数据库设计”,接下来我要在中搜索course_student 表,其中course_id等于创建的id(在本例中为1),并且所有student_id都与此id相关联。

我知道这有点复杂,所以请告诉我是否需要以更好的方式解释。

由于 Mestika

3 个答案:

答案 0 :(得分:9)

您可以尝试类似

的内容
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'

你不必加入Students表,因为你已经在course_student表中有了ID,所以少了1个加入。

答案 1 :(得分:0)

SELECT count(a.id)
FROM Course a
INNER JOIN Course_Student b
ON a.id = b.course_id
WHERE a.course_name = 'Database Design'

答案 2 :(得分:0)

只是略有不同的风格,但结果相同

select COUNT(cs.student_id) as counter from Course c, course_student cs where c.id = cs.course_id and c.course_name = 'Database Design'

相关问题