2014-02-26 25 views
1

我想從兩個表中獲取數據,然後在我的結果集上應用desc命令。我想知道codeiginter中的查詢語法。我想從story_ratings表我story_id匹配故事表的ID,然後命令他們根據最受好評的這裏是我的查詢:在codeiginter中加入兩個表?

$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

查看文檔:http://ellislab.com/codeigniter/user-guide/database/active_record.html – Rohit

+0

有什麼問題,你現在面臨? –

+0

我沒有收到結果集,它表示數據庫錯誤 –

回答

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'); 
+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(); 
} 
+0

感謝您的幫助 –

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();