Codeigniter 3 — считать строки из одной таблицы и объединяться

Я пытаюсь объединить две таблицы и подсчитать все результаты из messageFiles которые связаны с сообщение
У меня есть таблицы со следующей структурой:

Сообщения:

id
name
email
subject
message
date_added
read

messagesFiles

id
name
message_id
date_added

Я пытаюсь этот код, но я всегда получаю результат countFiles = 1 и я сообщение повторяется для каждого связанного с ним файла (например, если у меня есть 3 файла для сообщения, оно будет повторяться 3 раза). Также сообщения, которые не имеют файлов, не будут выбраны этим запросом. В чем проблема?

$this->db->select("SQL_CALC_FOUND_ROWS *, messages.*, COUNT(messagesFiles.id) as countFiles", FALSE)->from('messages')
->join('messagesFiles', "messagesFiles.message_id = messages.id")
->where("messages.read", 1)
->group_by('messagesFiles.id')->get()->result_array();

1

Решение

Вы можете попробовать что-то вроде этого кода ниже и добавить return $this->db->count_all_results(),

http://www.codeigniter.com/docs

http://www.codeigniter.com/userguide2/database/active_record.html

public function count_test() {
$this->db->select("*");
$this->db->from('category c');
$this->db->join('category_description cd', "cd.category_id = c.category_id");
return $this->db->count_all_results();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]