Несколько объединений в Codeigniter (Активные записи) - PullRequest
3 голосов
/ 09 мая 2011

Я пытаюсь получить результаты из своей базы данных, детали которых охватывают таблицы "места", "категории" и "отзывы", а затем сортировать по количеству отзывов.Когда я добавляю 2-е объединение, получается только одна строка.

$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 (), чтобы сделать код более чистым.

Любойидеи?

1 Ответ

4 голосов
/ 09 мая 2011

Я думаю, что вы хотите LEFT JOIN, попробуйте:

->join('places_reviews', 'places_reviews.place_id = places.id', 'left')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...