以下内容是本人自己写的,并没有找到此题的官方解答,如有更好的解题过程,请不吝赐教

详细问题描述

解答

第一问

完整答案

SELECT
student.s_id,student.s_name,COUNT(score.c_id),IF(SUM(score.`s_score`) IS NULL,0,SUM(score.`s_score`))
FROM student LEFT JOIN score ON student.`s_id` = score.`s_id`   GROUP BY student.s_id

效果

第二问

完整答案

SELECT * FROM student JOIN score ON student.`s_id`=score.`s_id` JOIN course ON score.`c_id` = course.`c_id`
WHERE (score.`c_id`,score.`s_score`) IN (SELECT c_id,MAX(s_score) AS s_score FROM score WHERE c_id IN (SELECT c_id FROM course WHERE t_id = (SELECT t_id FROM teacher WHERE t_name= "张三") ) GROUP BY c_id)

效果(有门课有两个最高成绩的学生)

第二问步骤描述

  • 步骤一(查找这个老师所带课程的id和此课程最高成绩)
     SELECT c_id,MAX(s_score) AS s_score FROM score WHERE c_id IN (SELECT c_id FROM course WHERE t_id = (SELECT t_id FROM teacher WHERE t_name= "张三") ) GROUP BY c_id

效果展示

  • 步骤二(将所需要的信息表关联)
SELECT * FROM student JOIN score ON student.`s_id`=score.`s_id` JOIN course ON score.`c_id` = course.`c_id`

效果展示

  • 步骤三(要注意in的字段)
WHERE (score.`c_id`,score.`s_score`) in  (步驟一的結果)

帮助到你的话,点个赞,鼓励一下,欢迎加入我的置顶博客设置的技术交流群,不搞代课推广,让我们一起向诗靠拢。

附件sql表

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.7.29-log : Database - review
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`review` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `review`;/*Table structure for table `course` */DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`c_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`c_name` varchar(255) NOT NULL,`t_id` int(10) unsigned NOT NULL,PRIMARY KEY (`c_id`),KEY `t_id` (`t_id`),CONSTRAINT `course_ibfk_1` FOREIGN KEY (`t_id`) REFERENCES `teacher` (`t_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `course` */insert  into `course`(`c_id`,`c_name`,`t_id`) values (1,'语文',1),(2,'编译原理',2),(3,'Linux',3),(4,'数学',1);/*Table structure for table `score` */DROP TABLE IF EXISTS `score`;CREATE TABLE `score` (`s_id` int(10) unsigned NOT NULL,`c_id` int(10) unsigned NOT NULL,`s_score` int(10) unsigned NOT NULL,KEY `s_id` (`s_id`),KEY `c_id` (`c_id`),CONSTRAINT `score_ibfk_1` FOREIGN KEY (`s_id`) REFERENCES `student` (`s_id`),CONSTRAINT `score_ibfk_2` FOREIGN KEY (`c_id`) REFERENCES `course` (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `score` */insert  into `score`(`s_id`,`c_id`,`s_score`) values (1,1,80),(2,1,80),(3,1,60),(7,1,50),(1,2,81),(2,2,71),(3,2,61),(7,2,51),(1,4,82),(2,4,72),(3,4,62),(7,4,52);/*Table structure for table `student` */DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`s_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`s_name` varchar(255) NOT NULL,`s_birth` datetime NOT NULL,`s_sex` varchar(255) DEFAULT NULL,PRIMARY KEY (`s_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;/*Data for the table `student` */insert  into `student`(`s_id`,`s_name`,`s_birth`,`s_sex`) values (1,'马云','2020-07-08 09:47:50','男'),(2,'孙传明','2020-07-08 09:48:08','男'),(3,'臧山松','2020-07-08 09:48:47','男'),(4,'贾小明','2020-07-08 09:49:02','男'),(5,'徐海露','2020-07-08 09:49:16','女'),(6,'尤路英','2020-07-08 09:49:36','女'),(7,'胡吃海塞','2020-07-08 09:49:56','男');/*Table structure for table `teacher` */DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` (`t_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`t_name` varchar(255) NOT NULL,PRIMARY KEY (`t_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;/*Data for the table `teacher` */insert  into `teacher`(`t_id`,`t_name`) values (1,'张三'),(2,'李华'),(3,'牛宝丽');/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

sql面试题:问题1:查询每个同学的学生编号、学生姓名、选课总数...问题2:查询“张三”老师所授课程的学生中,成绩最高的学生信息...相关推荐

  1. 查询选修“张三“老师所授课程的学生中,成绩最高的学生信息及其成绩

    #每天进步一点点# MySQL 查询选修"张三"老师所授课程的学生中,成绩最高的学生信息及其成绩 1.以名字查出t_id SELECT t_id FROM teacher WHER ...

  2. 40、查询选修“张三”老师所授课程的学生中成绩最高的学生姓名及其成绩(重要top)

    -- 40.查询选修"张三"老师所授课程的学生中成绩最高的学生姓名及其成绩(重要top)SELECT st.s_name,sc.s_score FROM student as st ...

  3. -- 40、查询选修“张三“老师所授课程的学生中,成绩最高的学生信息及其成绩

    SELECT st.*,c.c_name,sc.s_score,t.t_name FROM student st INNER JOIN score sc ON sc.s_id=st.s_id INNE ...

  4. mysql查询每个老师对应的所有学生_practice02_数据库02----查询所有学生的学号, 姓名, 选课数, 总成绩...

    1. 首先建立数据表 建立四张数据表(, 成绩表(score)) 1. 学生表(students) 1.学生id  ----  s_id 2. 学生姓名  ----  s_name 3. 学生生日 - ...

  5. 10-204 在员工表中查询所有男性员工的编号,姓名和入职日期,结果按员工编号升序排列

    分数 3 全屏浏览题目 切换布局 作者 刘冬霞 单位 山东理工大学 查询所有男性员工的编号,姓名和入职日期,结果按员工编号升序排列. 表结构: 员工(员工编号 文本型,姓名 文本型,性别 文本型,出生 ...

  6. 查询计算机系的所有教师,用sql查询所有计算机系的教师编号和姓名

    (1):答:select st.姓名,st.性别 from Student st,Sclass sc,Class c where st.学号=sc.学号 and sc.课程编号=c.课程编号 and ...

  7. 一条语句查询出所有雇员的编号、姓名、性别、出生日期、电话号码部门名称和本月收入

    在这里插入图片描述一条语句查询![ ](https://img-blog.csdnimg.cn/20200405232056575.jpg?x-oss-process=image/watermark, ...

  8. 成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

    这题一定要用join连表,from之后并列表名跟三个条件过不了. select a.*,b.score,b.CId from student a join sc b on a.SId=b.SId jo ...

  9. 互联网经典SQL面试题及答案解析

    练习前的准备 SQL环境搭建 https://www.jianshu.com/p/edca5142391c 建表语句 create table Student(sid varchar(10),snam ...

  10. [SQL]互联网经典SQL面试题及答案解析

    练习前的准备 SQL环境搭建 https://www.jianshu.com/p/edca5142391c 建表语句 create table Student(sid varchar(10),snam ...

最新文章

  1. Python MemoryError 问题
  2. C语言输入一行整数(OJ输入格式)
  3. JavaScript Array常用方法
  4. Jquery radio选中
  5. HTML DOCTYPE 标签 -- DTDs 文档类型声明
  6. mysql otter 数据同步_MySQL数据同步之otter
  7. 【转载】利用压缩网页来提升网站浏览速度
  8. Google Authenticator加强ssh安全
  9. android代码查找图像,Android平台上利用opencv进行图像的边沿检测
  10. Node Sass version 6.0.0 is incompatible with ^4.0.0.
  11. 挂机平台android,红手指手游挂机平台
  12. 我用Python分析了1500家电商的销售数据,竟发现了进口车厘子的秘密
  13. VMware Workstation Pro新建虚拟机的操作步骤
  14. 小米浏览器禁用java_2019-03-11 小米散招面试-Java后台实习
  15. 计算机怎样将多行文字转换成表格,怎么把表格里的字变成两行
  16. SQLyog连接MySQL时出现2058错误解决方法
  17. ngx_waf 防火墙
  18. Codeup最长公共子序列(LCS):最长公共子序列
  19. mysql开启外网访问权限
  20. 阿里云领取免费2H2G云服务器&证书分享(一):Apsara Clouder云计算专项技能认证:云服务器ECS入门

热门文章

  1. 实现ViewPager动态添加和删除页面
  2. HTML5期末大作业:商城网站设计——小米商城官网首页(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码...
  3. png图片怎么转换成jpg
  4. 基于MSCNN的人群密度估计之数据集制作
  5. 初步认识Apache Ignite
  6. 软件工程专业要考c语言吗,【干货】软件工程专业课到底考什么?
  7. iOS 10 消息推送(UserNotifications)秘籍总结(一
  8. 计算机不识别固态硬盘,电脑经常不识别固态硬盘
  9. 文本分类(三) | (6) 番外篇(预训练语言模型的另一种使用方式)
  10. 不卖菜,互联网巨头应该卖什么?