2011-05-09 95 views
3

我试图从数据库中检索结果,其中包含跨表格“地点”,“类别”和“评论”的详细信息,然后按评论数量进行排序。当我添加第二个连接时,只有一行被检索。Codeigniter中的多个连接(活动记录)

$this->db->select('places.*, category.*') 
      ->from('places') 
      ->join('category', 'places.category_id = category.category_id') 
      ->join('places_reviews', 'places_reviews.place_id = places.id') 
      ->where('places.category_id', $category_id) 
      ->limit($limit, $offset) 
      ->order_by($sort_by, $sort_order); 

我没有在IFNULL(COUNT(places_reviews('review_id')) AS 'num_reviews', 0)加入到select()函数使代码更干净。

任何想法?

+0

检查。 JOIN使查询只返回1行,因为这是唯一匹配的行。 – 2011-05-09 17:26:15

回答

4

我想你想要的是一个LEFT JOIN,尝试:你在DB行

->join('places_reviews', 'places_reviews.place_id = places.id', 'left')