在Codeigniter中,我试图用一对多关系连接两个表。我想从我的表housetype中得到一个结果,从另一个表housetype_member中得到它的所有值/成员:

$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,Name)来自第一个表,最后一个(image)来自第二个左表。一切都很好,但是我得到了一个包含两个元素的数组,而我只需要一个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活动记录完成吗,它能完成吗?

最佳答案

group_by()子句添加到查询中。

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

10-04 11:41