2016-01-05 48 views
2

在Codeigniter中,我嘗試以一對多關係連接兩個表。我想從另一個表housetype_member從我的表housetype及其所有值/成員得到一個結果:加入多對一

$this->db->select('*'); 
$this->db->join('housetype_member', 'housetype_member.housetype_id = housetype.PkId', 'left'); 
$result = $this->db->get_where('housetype', array('PkId' => $id)); 

return $result->result(); 

到目前爲止,我得到這樣的結果:

array (size=2) 
    0 => 
    object(stdClass)[28] 
     public 'PkID' => string '4' (length=1) 
     public 'Name' => string 'Classic' (length=7) 
     public 'image' => string '1449063250.jpg' (length=14) 
    1 => 
    object(stdClass)[30] 
     public 'PkID' => string '4' (length=1) 
     public 'Name' => string 'Classic' (length=7) 
     public 'image' => string '1449063288.gif' (length=14) 

前兩個對象值(PKID,名稱)來自第一個表,最後一個(圖像)來自第二個左表。一切都很好,但我得到了一個包含兩個元素的數組,當我只需要一個housetype對象時。

是否有寫上面的代碼,使我返回的對象應該是這樣的方式:

object(stdClass)[28] 
    public 'PkID' => string '4' (length=1) 
    public 'Name' => string 'Classic' (length=7) 
    public 'image' => 
    array (size=2) 
     0 => string '1449063250.jpg' (length=14) 
     1 => string '1449063288.gif' (length=14) 

我需要從第一個表,並給它一個結果,我想參加所有的成員來自中第二張桌子。

它可以用Codeigniters活動記錄完成,它可以完成嗎?

回答

0

group_by()子句添加到您的查詢中。

$this->db->group_by('housetype.PkId'); 
+0

所有這一切只是它將我的結果分組到一個對象中,並且我除了最後一個對象之外的所有圖像都鬆動了。我需要所有圖像的數組 –