2016-01-05 50 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

所有这一切只是它将我的结果分组到一个对象中,并且我除了最后一个对象之外的所有图像都松动了。我需要所有图像的数组 –