我相信在使用Active Records的Codeigniter中这一行有一个错误,但我似乎无法用IFNULL()和COUNT()
来弄清第二行的语法$this->db->select('places.*, category.*')
->select('IFNULL(COUNT("places_reviews.place_id"), 0) AS num_reviews')
->from('places')
->join('category', 'places.category_id = category.category_id')
->join('places_reviews', 'places_reviews.place_id = places.id', 'left')
->where('places.category_id', $category_id)
->group_by('places.id')
->limit($limit, $offset)
->order_by($sort_by, $sort_order);
答案 0 :(得分:17)
在SELECT语句后添加false
。 CodeIgniter试图用反引号来逃避语句,并且不知道如何正确地执行此操作。 false
会告诉它不要。
->select('IFNULL(COUNT(`places_reviews.place_id`), 0) AS `num_reviews`', false)
编辑:在COUNT("places_reviews.place_id")
中,引号应为反引号。