После объединения двух таблиц возвращает только один результат в codeigniter

if ($slug === FALSE){
     $this->db->order_by('posts.id', 'DESC');
     $this->db->join('categories', 'categories.id = posts.category_id');
     $query = $this->db->get('posts');
     return $query->result_array();
 }

У меня есть три сообщения в моей таблице, но в результате я получаю только 1. Это проблема, с которой я столкнулся после объединения двух таблиц (категорий и сообщений).

Код SQL, который выполняется:

SELECT * 
   FROM `posts` 
   JOIN `categories` ON `categories`.`id` = `post`.`category_id` 
   ORDER BY `posts`.`id` DESC

Трудно сказать что-либо, кроме обоснованного предположения, не видя фактического образца данных из ваших таблиц. Если бы мне пришлось угадывать, либо сообщения ссылаются на несуществующую категорию, либо категории вообще не упоминаются в сообщениях. Внутренние соединения выводят только то, что соответствует каждому указанному вами предложению. Попробуйте использовать левое соединение и посмотрите, что изменится. Вы сможете понять, что не так оттуда

Javier Larroulet 06.02.2019 03:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
35
1

Ответы 1

Возможно, в ваших сообщениях не определены категории. Поле внешнего ключа должно быть установлено, если вы хотите выполнить внутреннее соединение. Вы получаете только сообщения, которые имеют категории здесь. В противном случае вы можете получать сообщения без категорий, используя левое соединение.

Внешние ключи не нужны для соединений любого типа. Я предполагаю, что вы имеете в виду, что поля, используемые для объединения (в данном случае categories.id=posts.category_id), должны существовать в обеих таблицах.

Javier Larroulet 06.02.2019 03:24

Другие вопросы по теме