我有一个带有学生ID,成绩,班级ID,考试ID的成绩表。 我从
获得了分数和student_id$mark_query = $this->db->get_where('mark' ,
array('class_id' => $class_id,
'exam_id' => $exam_id)
);
在获得分数和student_id之后,我将显示带有学生姓名的分数,该名称是从上述查询中的带有student_id的另一个表中获得的。 我还有另一个表,上面有student_id及其名称。
输出是这样
Sajiv 25
Arun 35
Sonu 32
Binu 45
但是我想按升序显示名称。
有什么想法吗? 我正在使用codeigniter。
答案 0 :(得分:1)
加入带有标记表的学生表,并按学生姓名的升序排列
$this->db->select('students_table.name, mark.marks')
->from('mark')
->join('students_table', 'mark.student_id = students_table.id')
->where(['class_id' => $class_id, 'exam_id' => $exam_id])
->order_by('students_table.name', 'ASC')
->get();
答案 1 :(得分:0)
订购结果
$ this-> db-> order_by()
允许您设置ORDER BY子句。
第一个参数包含您要作为排序依据的列的名称。
第二个参数使您可以设置结果的方向。选项包括ASC,DESC。
$ this-> db-> order_by('title','DESC');
//产生:ORDER BY title
DESC
您还可以在第一个参数中传递自己的字符串:
$ this-> db-> order_by('title DESC,name ASC');
//产生:按title
DESC,name
ASC排序
如果需要多个字段,也可以进行多个函数调用。
$ this-> db-> order_by('title','DESC');
$ this-> db-> order_by('name','ASC');
//产生:按title
DESC,name
ASC排序
如果选择RANDOM direction选项,除非指定数字种子值,否则第一个参数将被忽略。
您随时可以检查 CodeIgniter查询生成器以获取帮助。 这是链接:https://www.codeigniter.com/userguide3/database/query_builder.html