SELECT st.s_name, sc.s_score from student st left JOIN score sc on st.s_id = sc.s_id GROUP BY sc.s_score HAVING sc.s_score < "60" OR sc.s_score is null AND COUNT(sc.s_score) >=2 这样就不展示出没有分数的学生了
时间: 2024-03-04 14:53:01 浏览: 39
105实施考试题目2020.docx
你是对的,这条 SQL 查询语句只会展示出有成绩的学生,因为它是使用左连接查询成绩表和学生表的,而左连接是以左表(即学生表)为基础的,右表(即成绩表)中没有对应记录的情况下会在结果集中显示 NULL 值。但是在这条 SQL 查询语句中,HAVING 子句中的条件 "sc.s_score IS NULL" 实际上是跟 OR 运算符结合的,这也就意味着只要满足分数小于60或者没有成绩,并且至少有两门课的成绩的学生就会被查询出来,即使他们的成绩表中没有对应记录也会被显示出来。
阅读全文