无法用mysql从不同的表中选择等级

时间:2015-03-02 00:51:16

标签: mysql database

我有一个问题想问你,这是关于数据库(mysql)。 我正在做一个学生管理系统,我一直坚持一些查询,我想根据表考试中的标记从表等级中选择grade_point和grade_name,所以我的期望是如果表考试中的标记在grade_mark_from和grade_mark_up之间它将返回grade_name和grade_point,你可以看到我的下表。

表等级:

--------------------------------------------------------------------------------
|grade_id|grade_name|grade_point|grade_mark_from|grade_mark_up|comment         |
--------------------------------------------------------------------------------
|1       |A+        |5          |80             |100          |Very good result|
|2       |A         |4          |70             |79           |Good result     |
|3       |B+        |3.5        |60             |69           |Good result     |
|4       |B         |3          |50             |59           |Good            |
|5       |C         |2          |40             |49           |Good            |
|1       |D         |2.5        |30             |39           |Good            |
|1       |E         |1.5        |1              |33           |No good         |
--------------------------------------------------------------------------------

表格考试:

----------------------------------------------------
|exam_id|mark|comment|exam_id|subject_id|student_id|
----------------------------------------------------
|1      |50  | no    |1      |1         |1         |
|2      |30  | no    |1      |1         |2         |
|3      |70  | no    |1      |1         |3         |
|4      |90  | no    |1      |2         |1         |
|5      |60  | no    |1      |2         |2         |
|6      |25  | no    |1      |2         |3         |
----------------------------------------------------

所以我不知道这样做,请帮助我。

1 个答案:

答案 0 :(得分:1)

作为一个例子,假设您想要考试3的值。

您可以使用BETWEEN:

SELECT grade_point, grade_name FROM grade, exam 
WHERE mark BETWEEN grade_mark_from AND grade_mark_up AND exam_id = 3;

或者您可以使用单一条件:

SELECT grade_point, grade_name FROM grade, exam 
WHERE mark > grade_mark_from AND mark < grade_mark_up AND exam_id = 3