打印未通过一门科目的学生的所有记录

问题描述 投票:0回答:1

我在下面的例子中有一个用例, 我正在为我如何做一个选择语句来获取所有记录来显示一个或多个科目失败的学生的逻辑而苦苦挣扎

假设我有下表

Student_id 姓名 主题 分数
s1 亚当 英语 35
s1 亚当 数学 69
s1 亚当 科学 55
s2 鲍勃 英语 56
s2 鲍勃 数学 76
s2 鲍勃 科学 88
s3 流行 英语 33
s3 流行 数学 90
s3 流行 科学 76

预期输出应该是

Student_id 姓名 主题 分数
s1 亚当 英语 35
s1 亚当 数学 69
s1 亚当 科学 55
s3 流行 英语 33
s3 流行 数学 90
s3 流行 科学 76

我试过下面的查询,但它没有显示任何值

select count(*) 
from (select student_id 
      from student 
      where marks < 50 
      group by student_id 
      having count(subject) > 1) as dt
sql mysqli
1个回答
1
投票
 SELECT Student_id, name, subject, marks
    FROM student_marks
    WHERE Student_id IN (
      SELECT Student_id
      FROM student_marks
      WHERE marks < 40
      GROUP BY Student_id
      HAVING COUNT(*) >= 1
    )

这个查询会先从student_marks表中选出所有分数小于40的记录,然后按Student_id对记录进行分组,统计每组记录的条数

© www.soinside.com 2019 - 2024. All rights reserved.