计算学生数并显示在另一个表中

z9smfwbn  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(233)

我有学生和课程表:

Student(Roll_no(primary), Name, Course_id(foreign))
Course(Course_no(primary), Course_name)

我将如何检索:
答。有两个以上学生被录取的课程详情的表格。
b。课程表以及计数列。
我试着解决第一个问题:

SELECT * FROM Course WHERE(SELECT COUNT(*) FROM Student GROUP BY Course_no WHERE COUNT(*) > 2);

我不知道我做了什么,但那没用。我不熟悉数据库系统。
示例:学生表

+---------+----------+----------+-----------+
    | Roll_no | Name     | Semester | Course_no |
    +---------+----------+----------+-----------+
    |       1 | a        |        3 |       101 |
    |       2 | b        |        5 |       101 |
    |       3 | c        |        3 |       101 |
    |       4 | c        |        3 |       101 |
    |       5 | d        |        3 |       101 |
    |       7 | b        |        4 |       102 |
    +---------+----------+----------+-----------+

课程表

+-----------+-------------+
| Course_no | Course_name |
+-----------+-------------+
|       101 | BCA         |
|       102 | BSC         |
+-----------+-------------+

对于第一部分,我希望有一个如下的表格:

+-----------+-------------+
| Course_no | Course_name |
+-----------+-------------+
|       101 | BCA         |
+-----------+-------------+

第二部分我希望有一张像这样的table

+-----------+----------------------+
| Course_no | Course_name |Total   |
+-----------+-------------+--------+
|       101 | BCA         |5       |
|       102 | BSC         |1       |
+-----------+-------------+--------+
nxagd54h

nxagd54h1#

第一部分:
你需要使用 JOIN 以及 HAVING ```
SELECT c.Course_no,c.Course_name
FROM Course c
INNER JOIN Student s on c.Course_no = s.Course_id
GROUP BY c.Course_no,c.Course_name
HAVING count(1) > 2

sqlfiddle:http://sqlfiddle.com/#!9/387386/3
第二部分:
你需要 `JOIN` 以及
GROUP BY `COUNT` ```
SELECT c.Course_no,c.Course_name,count(1) 'totle'
FROM Course c 
INNER JOIN Student s on c.Course_no = s.Course_id
GROUP BY c.Course_no,c.Course_name

sqlfiddle:http://sqlfiddle.com/#!9月7日

相关问题