1

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();
4

1 に答える 1