SELECT s.s_id, s.s_name, s.k_id, s.k_name FROM student s LEFT JOIN grade g ON s.s_id = g.s_id AND s.k_id = g.k_id WHERE g.g_id IS NULL
时间: 2024-05-25 13:13:52 浏览: 76
这是一个 SQL 查询语句,作用是查询没有成绩的学生和课程信息。具体解释如下:
- SELECT s.s_id, s.s_name, s.k_id, s.k_name:选择要查询的字段,包括学生id、学生姓名、课程id和课程名称。
- FROM student s:从 student 表中选择数据,表别名为 s。
- LEFT JOIN grade g:左连接 grade 表,表别名为 g。
- ON s.s_id = g.s_id AND s.k_id = g.k_id:设置连接条件,即学生id和课程id都相等。
- WHERE g.g_id IS NULL:筛选出没有成绩的学生和课程信息,即 grade 表中成绩id为空。
总的来说,这个查询语句可以帮助我们找出哪些学生还没有获得成绩。
相关问题
SELECT ak.dept_id deptId,ak.dept_name deptName,ak.parent_id parentId, IFNULL(pk.primaryShould,0) primaryShould,IFNULL(pk.primaryNot,0) primaryNot,IFNULL(pk.primaryGraduated,0) primaryGraduated, IFNULL(mk.middleShould,0) middleShould,IFNULL(mk.middleNot,0) middleNot,IFNULL(mk.middleGraduated,0) middleGraduated, IFNULL(hk.highShould,0) highShould,IFNULL(hk.highGraduated,0) highGraduated,IFNULL(hk.highNot,0) highNot FROM sys_dept ak LEFT JOIN (SELECT subordinate_school, SUM(CASE WHEN grade = 6 THEN 1 ELSE 0 END) primaryShould, SUM(CASE WHEN grade = 6 AND is_graduation = 'N' THEN 1 ELSE 0 END) primaryNot, SUM(CASE WHEN grade = 6 AND is_graduation = 'Y' THEN 1 ELSE 0 END) primaryGraduated FROM primary_school_roll WHERE primary_student_id LIKE concat('20', '%') GROUP BY subordinate_school) pk ON ak.dept_id = pk.subordinate_school LEFT JOIN (SELECT subordinate_school, SUM(CASE WHEN grade = 9 THEN 1 ELSE 0 END) middleShould, SUM(CASE WHEN grade = 9 AND is_graduation = 'N' THEN 1 ELSE 0 END) middleNot, SUM(CASE WHEN grade = 9 AND is_graduation = 'Y' THEN 1 ELSE 0 END) middleGraduated FROM middle_school_roll WHERE middle_student_id LIKE concat('20', '%') GROUP BY subordinate_school) mk ON ak.dept_id = mk.subordinate_school LEFT JOIN (SELECT subordinate_school, SUM(CASE WHEN grade = 12 THEN 1 ELSE 0 END) highShould, SUM(CASE WHEN graduation_way = '001' AND is_graduation = 'T' THEN 1 ELSE 0 END) highNot, SUM(CASE WHEN graduation_way = '000' AND is_graduation = 'Y' THEN 1 ELSE 0 END) highGraduated FROM high_school_roll WHERE high_student_id LIKE concat('20', '%') GROUP BY subordinate_school) hk ON ak.dept_id = hk.subordinate_school WHERE ak.state = 3 GROUP BY ak.dept_id
这是一条 SQL 查询语句,根据部门ID将三个子查询的结果进行合并,最终返回各部门的信息以及不同年级的学生人数及毕业情况。
具体实现过程是,使用 LEFT JOIN 连接 sys_dept 表和三个子查询的结果集,根据部门ID进行关联。在子查询中,使用 SUM() 函数对不同年级的学生人数进行求和,然后根据不同的条件进行分类统计。最后,使用 GROUP BY 对查询结果按部门ID进行分组,以得到每个部门的统计结果。
需要注意的是,这条查询语句中使用了 IFNULL() 函数对查询结果进行处理,以避免在统计结果为 NULL 时出现错误。同时,也需要注意在使用 LIKE 进行模糊查询时,应该使用索引来提高查询效率。
有以下三个表:(共10分,每题5分) student(student_id,student_name,student_age) 分别代表:学号,学生姓名,所属单位,学习年龄 course(course_id,course_name) 分别代表:课程编号,课程名称 stu_cour(student_id,course_id,grade) 分别代表:学号,所选课程编号,学习成绩 请写出相应的sql语句: 1.统计选修了课程的人数(选修多门时,只计算一次) 2.查询选课在3门以上(包括3门)的学生,要求显示学号,姓名,平均分,选课门数,按平均分降序排序 2、给一个不多于 5 位的正整数, 要求: 一、 求它是几位数, 二、 逆序打印出各位数字。
1SELECT COUNT(DISTINCT student_id) FROM stu_cour;
2.SELECT student_id, student_name, AVG(grade) AS avg_grade, COUNT(*) AS course_num FROM student LEFT JOIN stu_cour ON student.student_id=stu_cour.student_id GROUP BY student_id HAVING COUNT(*)>=3 ORDER BY avg_grade DESC;
3.请输入一个不多于5位的正整数:
阅读全文