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 关注
- 371 浏览
添加回答
举报