首页 > 试题广场 >

Mysql中表student_table(id,name,b

[单选题]
Mysql中表student_table(id,name,birth,sex),score_table(stu_id,subject_name,score),查询每个学生的分数最高的学科以及对应分数、学生明细记录,如下SQL正确的是()?
  • select t3.*,t2.subject_name,t2.score
    from (
    select stu_id,max(score) as c1 from score_table group by stu_id order by c1 desc limit 1
    ) t1
    inner join
    (
    select * from score_table
    )t2 on t1.stu_id = t2.stu_id and t1.c1 = t2.score
    inner join student_table t3
    on t1.stu_id = t3.id;
  • select t3.*,t2.subject_name,t2.score
    from (
    select stu_id,max(score) as c1 from score_table group by stu_id
    ) t1
    inner join
    (
    select * from score_table
    )t2 on t1.stu_id = t2.stu_id
    inner join student_table t3
    on t1.stu_id = t3.id;
  • select t3.*,t2.subject_name,t2.score
    from (
    select stu_id,max(score) as c1 from score_table group by stu_id
    ) t1
    inner join
    (
    select * from score_table
    )t2 on t1.c1 = t2.score
    inner join student_table t3
    on t1.stu_id = t3.id;
  • select t3.*,t2.subject_name,t2.score
    from (
    select stu_id,max(score) as c1 from score_table group by stu_id
    ) t1
    inner join
    (
    select * from score_table
    )t2 on t1.stu_id = t2.stu_id and t1.c1 = t2.score
    inner join student_table t3
    on t1.stu_id = t3.id;
分数最高可能有重合的科目都应该找出来
发表于 2021-12-16 15:38:14 回复(6)
a 就错在limit 1,分数一样的它取了一个(造孽啊)😫😫😫😫😫😫😫
发表于 2022-04-10 14:11:31 回复(1)
 t1.stu_id = t2.stu_id and t1.c1 = t2.score才能找到
发表于 2022-01-03 23:36:23 回复(0)
A、max(score) as c1后又对c1进行了order by然后limit取一个,相当于取的是所有学生中所有学科的最高分(只有一个结果),题目要求是每个学生的所有学科最高分
B、t1查询完后跟t2进行连接时只给出了一个学生id相等t1.stu_id = t2.stu_id条件,缺少分数相等的条件(t1.c1 = t2.score)
C、与B选项相反,t1跟t2连接时只给出了分数相等的条件t1.c1 = t2.score
D、符合正确答案,查询成绩表中每人的最高成绩;返回成绩表中(学生id相同,成绩score相同)的这个人的行;和学生表联合,返回 id相同的行
发表于 2022-12-11 14:36:25 回复(0)
为什么非要用两个字段关联呢?一个不行吗?
发表于 2022-07-20 09:15:08 回复(1)
A、执行分组查询时,limit 会在所有分组完成后才生效,而不是在每个分组中生效。也就是说,limit 1 限制的是查询返回结果的总记录数,而不是每个分组的记录数,所以A选项只会有1条记录
发表于 2024-03-20 17:20:18 回复(0)
 第二个内连接意义是什么?第一个select不是已经找出每个人最高分数的学科了吗
发表于 2023-10-10 21:20:46 回复(0)
知识点:INNER JOIN 语句 和 MAX(i)
发表于 2023-03-26 17:45:11 回复(0)
<p>看不懂,有大佬讲解思路吗</p>
发表于 2023-02-08 19:58:24 回复(0)
根据ID来分组,查询成绩表中每人的最大成绩;返回成绩表中(根基 id相同,成绩相同)的这个人的行;和学生表联合,返回 id相同的行
发表于 2022-08-18 09:12:07 回复(0)
要关联学生的id 和成绩才可以查询
发表于 2022-07-21 16:21:49 回复(0)
这种题头大,完全没思路,有没有那个大佬理理思路啊

发表于 2022-05-31 22:01:45 回复(2)