我想从两个表中获取数据,然后在我的结果集上通过desc应用顺序。我想知道codeiginter中查询的语法。我想将story_ratings表中的story_id与故事表的id匹配,然后根据最高评分对它们进行排序。这是我的查询:
$this->db->select('story_ratings.*,stories.*');
$this->db->from(' story_ratings');
$this->db->join('stories', 'story_ratings.story_id = stories.id', 'left');
$this->db->order_by('story_ratings.avg_rate','desc');
$query = $this->db->get();
答案 0 :(得分:3)
最聪明的方法是使用1个函数中的所有函数,你可以将它放在帮助程序中,并根据需要从控制器传递你的参数。
function GetAllRecord($table_name='',$condition=array(),$join_table='',$table_id='',$join_id='',$is_single=false){
$ci = & get_instance();
#$ci->db->select('first_name,last_name');
if($condition && count($condition))
$ci->db->where($condition);
$ci->db->from($table_name);
if($join_table)
$ci->db->join($join_table,"$table_name.$table_id = $join_table.$join_id");
$res = $ci->db->get();
if($is_single)
return $res->row_array();
else
return $res->result_array();
}
答案 1 :(得分:2)
尝试此代码,我认为这将有效
$this->db->select('a.*,b.*');
$this->db->join('stories b', 'a.story_id = b.id', 'left');
$this->db->order_by('a.avg_rate','desc');
$query = $this->db->get('story_ratings a');
答案 2 :(得分:1)
试试这个..
$query=$this->db->select('t1.*, t2.*')
->from('story_ratings as t1')
->join('stories as t2', 't1.story_id = t2.id','left')
->order_by('t1.avg_rate','desc');
->get();