gpt4 book ai didi

mysql - Laravel 查询生成器分组

转载 作者:行者123 更新时间:2023-11-29 11:18:57 25 4
gpt4 key购买 nike

我在 Laravel 查询时遇到问题:

我想要例如:

SELECT * FROM USERS WHERE (a = b) or (b = a)

我有这个,但不起作用:

    $user = Auth::user();    $id_user = $user->id;    $message = DB::table('message')    ->where('sender_id', '=', $user->id)    ->where('reciver_id', '=', $id)    ->orWhere(function($query) use ($id,$id_user){      $query-->where('sender_id', '=', $id)       ->where('reciver_id', '=', $id_user);    })    ->join('users', function ($join) {       $join->on('users.id', '=', 'message.sender_id')->orWhere('users.id', '=', 'message.reciver_id');    })->select('users.*', 'message.topic', 'message.message', 'message.read', 'message.created_at as date')    ->orderBy('date')->get();    return $message;

最佳答案

您应该将前两个 where 嵌套在一个新的 where 中。请参阅下面的代码:

    $message = DB::table('message')
->where(function($query) use ($id,$id_user){
$query->where('sender_id', '=', $id_user)
->where('reciver_id', '=', $id);
})
->orWhere(function($query) use ($id,$id_user){
$query->where('sender_id', '=', $id)
->where('reciver_id', '=', $id_user);
})
->join('users', function ($join) {
$join->on('users.id', '=', 'message.sender_id')->orWhere('users.id', '=', 'message.reciver_id');
})->select('users.*', 'message.topic', 'message.message', 'message.read', 'message.created_at as date')
->orderBy('date')->get();

关于mysql - Laravel 查询生成器分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com