我有一个问题想问你,这是关于数据库(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 |
----------------------------------------------------
所以我不知道这样做,请帮助我。
答案 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