学同王小 2021-12-27 00:03 采纳率: 0%
浏览 92

Mysql,三表查询求解答面试遇到的

SQL好久没写了,一下竟然不会写,给整不会了

我尝试过的方法 想知道正确答案

SELECT * from student_score
LEFT JOIN course on course.id=student_score.course_id
LEFT JOIN student ON student_score.studentid=student.id
GROUP BY student_score.course_id
ORDER BY student_score.score DESC
limit(0,3)

img

学生表 student( id name)
课程表 course (id course_name)
student_score (id student_id score course_id)
                     查总分排名前三大学生的名字
  • 写回答

3条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2021-12-27 14:08
    关注
    1. 有group by 的一个select里,不管是否可以执行查询,记住不要用select * from
    2. 你这个需求是查总分,不用管是什么课程,在确认分数表里的课程字段里的值都存在于课程表中时,可以不用关联课程表
    3. 既然查询结果是名字这一个字段,那么如果严格按照要求,是不能查询出其他字段的,所以上面几位的回答都存在问题
    4. 总分排名前三,但不一定就是三个名字,因为可能存在同分并列的情况,用limit进行行数限制的话,可能会导致数据缺失
    5. 综上,建议使用rank函数来进行排名,再套一层查询rank<=3 的名字
    评论

报告相同问题?

问题事件

  • 修改了问题 12月27日
  • 修改了问题 12月27日
  • 修改了问题 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动