3 回答

TA貢獻1829條經驗 獲得超9個贊
為什么不在一個查詢中恢復所有結果?
result_a = DB::connection('mysql_live')
->table('user_chatmessages')
->where('from_user', $data->chat_from_user)
->orWhere('to_user', $data->chat_from_user)
->orderBy('date_added', 'desc')
->get();
或用戶,->orderBy('created_at', 'desc')如果您有默認時間戳字段
編輯
要恢復兩個特定用戶之間的聊天,您需要使用括號。
result_a = DB::connection('mysql_live')
->table('user_chatmessages')
->where(function($query) use($data) {
$query->where('from_user', $data->chat_from_user)
->where('to_user', $data->chat_to_user);
})
->orWhere(function($query) use($data) {
$query->where('to_user', $data->chat_from_user)
->where('from_user', $data->chat_to_user);
})
->orderBy('date_added', 'desc')
->get();

TA貢獻1834條經驗 獲得超8個贊
您可以直接獲取數據,而無需像這樣使用合并:
result = DB::connection('mysql_live')
->table('user_chatmessages')
->where(function($query) use ($data){
$query->where('from_user', $data->chat_from_user)->orWhere('to_user', $data->chat_from_user)
})->orderBy('date_added','desc')
->get();

TA貢獻1757條經驗 獲得超8個贊
如果你想使用兩個查詢,那么你可以使用聯合。
子查詢
$subQuery = DB::connection('mysql_live')
->table('user_chatmessages')
->where('from_user', $data->chat_from_user);
在主查詢上使用聯合添加子查詢
$results = DB::connection('mysql_live')
->table('user_chatmessages')
->where('to_user', $data->chat_from_user)
->union($subQuery) //see
->orderBy('date_added', 'desc') //see
->get();
這應該有效。您可以使用任何查詢將它們合并以避免合并集合,然后按 date_add 排序
- 3 回答
- 0 關注
- 429 瀏覽
添加回答
舉報