Codeigniter 3 - 计算一个表中的行并加入

时间:2015-04-30 21:28:52

标签: php mysql codeigniter 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 个答案:

答案 0 :(得分:0)

您可以尝试下面的代码,然后添加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();
}