2 つのテーブルを結合して、メッセージに関連するmessageFilesからのすべての結果をカウントしようとし ています。次の構造のテーブルがあります。
メッセージ:
id
name
email
subject
message
date_added
read
メッセージファイル
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();