【问题标题】:Unrelated Table Query不相关的表查询
【发布时间】:2016-04-27 12:23:17
【问题描述】:

我有两张表,一张存储学生考试成绩 (tblStudentScores),另一张存储成绩界限 (tblBoundaries)。见下文

tblStudentScores

---------------------
| stuName| testScore |
---------------------
| carl   |    40     |
---------------------
| david  |    35     |
---------------------

tbl 边界

---------------------
| grade  |   score   |
---------------------
|   A*   |    45     |
---------------------
|   A    |    40     |
---------------------
|   B    |    30     |
---------------------

我想要一个返回学生姓名和成绩的查询,例如:

---------------------
| stuName|   Grade   |
---------------------
| carl   |     A     |
---------------------
| david  |     B     |
---------------------

【问题讨论】:

  • 请用您正在使用的数据库标记您的问题。

标签: sql comparison relationship


【解决方案1】:

一种简单的方法使用相关子查询:

select ss.*,
       (select b.grade
        from tblBoundaries b
        where ss.testscore >= b.score 
        order by b.score desc
        fetch first 1 row only
       ) as grade
from tblStudentScores ss;

此查询使用 ANSI 标准 fetch first 1 row only。不同的数据库有不同的表达方式。 . . limittop 1,甚至其他方法。

【讨论】:

  • 完美,谢谢你第一次工作,虽然我使用了 LIMIT 1,因为 Fetch 似乎不被喜欢?结果是一样的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2016-12-19
  • 2014-06-26
  • 2014-10-04
相关资源
最近更新 更多