2016-05-10 7 views
3

チャットIDはチャットIDとユーザーの間でチャットする必要があります。しかし、このクエリはチャット数をカウントしません。その空白。私はスタックオーバーフロー(Laravel Eloquent groupBy() AND countLaravel get count of results based on groupBy)の同様の問題を見て、正しいとマークされているが依然として望ましい結果を得ていないクエリを使用しました。LaravelでGroupByが動作していない場合

私は次のクエリを使用しています:

{ 
"_id": ObjectId("571f549b1c8cb6972c8b4567"), 
"message": "Testing Chat Functionality", 
"type": "singlechat", 
"date": "2016-04-26 11:44:27", 
"from": "56b07a5a083f119a0b8b4569", 
"to": "56b07a5a083f119a0b8b4569", 
"chat_id": "56f65fc51c8cb6ca1a8b4567", 
"status": "1", 
"updated_at": ISODate("2016-04-26T11:44:27.624Z"), 
"created_at": ISODate("2016-04-26T11:44:27.624Z"), 
"viewed": "0" 
} 

そして、その結果は次のように来る:

$user_info = DB::table('chat_messages') 
       ->select(DB::raw('count(*) as total')) 
       ->where('viewed','=', '0') 
       ->groupBy('chat_id','type') 
       ->get(); 

私のテーブル構造は、などである

Array 
(
[0] => Array 
    (
     [_id] => Array 
      (
       [chat_id] => 56f65fc51c8cb6ca1a8b4567 
       [type] => singlechat 
      ) 

     [chat_id] => 56f65fc51c8cb6ca1a8b4567 
     [type] => singlechat 
     [count(*) as total] => 
    ) 

[1] => Array 
    (
     [_id] => Array 
      (
       [chat_id] => 56fa3f5f1c8cb667138b4567 
       [type] => groupchat 
      ) 

     [chat_id] => 56fa3f5f1c8cb667138b4567 
     [type] => groupchat 
     [count(*) as total] => 
    ) 

答えて

0
$user_info = DB::table('chat_messages') 
       ->where('viewed','=', '0') 
       ->select(DB::raw('count(chat_messages.*) as total')) 
       ->groupBy('chat_id','type') 
       ->get(); 

これはうまくいくはずです。今すぐテストできません。

+0

いいえ動作しません。これは、わずかな変更で上記と同じ結果が得られます。私は[count(chat_messages_ *)as total] => – Mukesh

関連する問題