将关系模式转换为SQL查询

时间:2017-10-27 12:34:32

标签: mysql sql relational-database

我目前正在大学学习数据库系统课程,这是我的导师给出的一个我无法弄清楚的练习中的一个问题。我能够做其他问题。在此先感谢。(主键是斜体)

QUESTION // 请考虑以下关系模式。

学生( sid ,sname,地址,城市,gpa)

当然( cid ,cname,iid)

注册( sid,cid ,年级)

讲师( iid ,iname)

为以下各项提供相应的SQL查询。

  • 找到第10个最高gpa的学生的ID和姓名。为简单起见,您可以假设gpa值是不同的。

2 个答案:

答案 0 :(得分:0)

我想尝试的psedocode是按降序选择前十名学生的gpa。那时你有desc(最大到最小)的10个GPA。第10位在底部。但你怎么得到第10个?您可以子查询该查询的结果,以便以升序(从最小到最大)的顺序获得最高值。

子查询的一般方法:

SELECT dT.Col1 
  FROM (
         SELECT Col1
           FROM Table
          --ORDER BY?
       ) AS dT
--ORDER BY ?

答案 1 :(得分:0)

我解决了这个问题随意做出任何更正。感谢您提供有用的评论。

SELECT sid, sname
FROM ( SELECT sid, sname
       FROM student
       ORDER BY gpa DSC LIMIT 10)
ORDER BY gpa ASC LIMIT 1