我在sql语句中遇到一些麻烦,必须找到参加课程的学生人数.
我的数据库设计看起来像这样:
我的数据库设计看起来像这样:
表课程:
id |课程名
表学生:
id |名称
为了连接两个多对多的关系,我有一张桌子:
表course_student:
id | course_id |学生卡
我想要的是找出有多少学生参加名为“数据库设计”的课程.我知道ID是“1”但是我说我不知道,我的sql语句会是什么样子?
我尝试了几个不同联接的不同语句,首先从课程表中选择正确的ID,其中名称为“数据库设计”,接下来我要在我的course_student表中搜索,其中course_id等于创建的id(在这种情况下) 1)并且所有student_id都与此id相关联.
我知道这是一个有点复杂的描述所以请告诉我是否必须以更好的方式解释它.
谢谢
Mestika
解决方法
你可以尝试类似的东西
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个加入.