laravel - 如何在 laravel 中联合和 groupby
问题描述
我想获取发送聊天的联系人 ID,或者我是否使用本机查询向他发送聊天,我可以获得结果,但是当我在 laravel 中实现时,我的本机查询很难
select * from `users` where `users`.`id` in (
select `to` from messages where `from` = 2 group by `to`
union
select `from` from messages where `to` = 2 group by `from`
)
我发现困难的是如何在 group by 或 group by 后联合使用相同的列号,我使用合并但结果是错误的,这是我在 laravel 中尝试过的
$to = Message::select('to')->where('from',auth()->id())->groupBy('to')->get();
$from = Message::select('from')->where('to',auth()->id())->groupBy('from')->get();
$tofrom = $to->merge($from);
dd($tofrom);
如果有任何机构可以提供帮助,请
解决方案
联合在文档中进行了描述。为了满足您的特定要求,您可以执行以下操作:
$final = User::whereIn('id', function ($query) {
$from = Message::select('from')->where('from',auth()->id())->groupBy('from');
$query->from('messages')->where('to',auth()->id())->groupBy('to')->union($from);
})->get();
免责声明:我还没有实际测试过这个,但我认为它应该可以工作。
推荐阅读
- javascript - 如何在可反应中动态添加新行
- php - 致命错误:未捕获的 ArgumentCountError:函数 Spatie\Ssr\Engines\V8::__construct() 的参数太少
- ansible - Ansible-playbook 试图在命令中运行命令以获取变量。或者更好的方法
- python - 字符串到类对象
- sass - 响应式标题的 SASS 函数
- excel - Microsoft 的强制隐式交集运算符是否在 Excel VBA 中消除了我的公式?
- javascript - ERROR 错误:formGroup 需要一个 FormGroup 实例。请传入一个
- python - 如何替换大型数据集的“if”块以根据条件构造新列
- javascript - Meteor.js 和 MongoDB,我在操作数据库时遇到问题
- sql-server - SQL Server:如何在创建临时表时省略“CreatedOn”列?