2014-11-20 155 views
-1

我需要使用3個表進行查詢,我遇到了一些麻煩。 我已經在我的項目3個表:Codeigniter活動記錄 - 查詢3表

projects,​​和categories

projects

  • id_project
  • 標題
  • 日期

​​

  • id_proj_cat
  • id_project
  • id_category

categories

  • id_category

我已經做了一個連接查詢,但結果是一個具有相同的project_id的數組顯示多次。 我需要的是一個更高效的查詢,它可以列出每個project_id裏面的數組,以及它的類別和名稱。類似的東西。

我可以做一個單獨的查詢,但我試圖在一個單一的查詢實現。

+0

其簡單的加入query.what你有試過嗎? – 2014-11-20 20:55:04

+0

是的,我有很多次出現同一個項目。我需要的是每個項目數組中的數組列表。我可以做一個單獨的查詢......但我試圖在一個單一的查詢中實現。 – 2014-11-20 21:02:57

+0

你正在尋找什麼不清楚你的問題。請在你的問題中顯示你想要的數組結構。 – 2014-11-21 05:15:18

回答

1

試試這個

$this->db->from("projects p"); 
    $this->db->select("p.id_project,c.categories,c.name"); 
    $this->db->join("projects_categories pc","pc.id_project = p.id_project","LEFT"); 
    $this->db->join("categories c","c.id_category = pc.id_category","LEFT"); 
    $result=$this->db->get()->result_array(); 

現在$結果是你的陣列。

+0

我會努力的!:)謝謝 – 2014-11-20 21:23:12

+0

進出口仍面臨着同樣的問題。 :([0] =>數組( [id_projecto] => 29 [標題] =>標題1 [數據] => 2012年12月12日[id_categoria] => 2 [nome_categoria] => 架構) [1] =>數組( [id_projecto] => 29 [標題] =>標題1 [數據] => 2012年12月12日[id_categoria] => 3 [nome_categoria] =>康復 ) [2] =>數組( [id_projecto] => 30 [標題] =>標題 2 [數據] => 2021年12月9日[id_categoria] => 4 [nome_categoria] => 設計) [3] =>數組( [id_projecto] => 30 [標題] =>標題 2 [數據] => 2021年12月9日[id_categoria] => 3 nome_categoria]如果與projects_categories表的關係包含所有id_project,如果每一個名字都有id_category然後你可以使用內部join.Just替換詞''LEfT'with INNER' => – 2014-11-20 22:19:57

+0

再生。其他明智的選擇,在您的statement.like鮮明id_project選擇'$這個 - > DB->選擇( 「DISTINCT(p.id_project)c.categories,c.name」);「 – 2014-11-21 09:14:51

1

試試這個:

$this->db->select('p.id_project,c.categories,c.name'); 
$this->db->from('projects p'); 
$this->db->join("projects_categories pc","p.id_project = pc.id_project","INNER"); 
$this->db->join("categories c","pc.id_category = c.id_category","INNER"); 
$query = $this->db->get(); 
return $query->result_array();