给定sno,pno,score,查询表中至少有两门课程在90分以上的学生信息
时间: 2024-10-24 10:06:17 浏览: 23
SQL语句创建学生信息数据库表的示例-学生信息数据库表.doc
在数据库查询操作中,如果你想找到至少有两门课程成绩达到90分以上的学生信息,通常会涉及到联接(JOIN)多个表,假设我们有两个表,一个是学生表(Students),包含字段`sno`(学号)和`pno`(课程编号),另一个是成绩表(Scores),包含字段`sno`、`pno`和`score`。
查询语句可能如下所示:
```sql
SELECT s.*
FROM Students s
JOIN Scores sc1 ON s.sno = sc1.sno AND sc1.score >= 90
JOIN Scores sc2 ON s.sno = sc2.sno AND sc2.score >= 90
GROUP BY s.sno
HAVING COUNT(DISTINCT sc1.pno) + COUNT(DISTINCT sc2.pno) >= 2;
```
这个查询首先通过`sno`将学生表和每门课程的成绩表联接起来,并筛选出分数大于等于90的记录。然后,对每个学生的记录进行分组,并计算他们有多少独特的课程(`sc1.pno`和`sc2.pno`)成绩超过90。如果课程数量总和大于或等于2,则说明该学生满足条件。
阅读全文