我有学生和课程表:
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 |
+-----------+-------------+--------+
1条答案
按热度按时间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月7日