Ken*_*thC 3 php mysql laravel laravel-5
我有一个名为messages的表,它的列是
id, sender_id, message, receiver_id, created_at, updated_at
Run Code Online (Sandbox Code Playgroud)
而另一个表称为用户,它的列是
id, firstname, lastname, email, password, created_at,updated_at
Run Code Online (Sandbox Code Playgroud)
我想获取所有用户的所有消息,因此我使用users.id加入messages.sender_id和messages.receiver_id
但是我不知道如何在加入laravel时使用"OR"运算符这是我的原始查询,它给了我所需的输出.
SELECT messages.*,users.* FROM messages JOIN users ON users.id = messages.sender_id
OR users.id = messages.receiver_id GROUP BY messages.id
Run Code Online (Sandbox Code Playgroud)
这是我试过的laravel查询
$get_messages = DB::table('messages')
->where('messages.sender_id',$user_id)
->leftjoin('users', function($join){
$join->on('users.id','=','messages.sender_id'); // i want to join the users table with either of these columns
$join->on('users.id','=','messages.receiver_id');
})
->orwhere('messages.sender_id',$partner_id)
->where('messages.receiver_id',$user_id)
->orwhere('messages.receiver_id',$partner_id)
->groupby('messages.id')
->get();
print_r($get_messages);
Run Code Online (Sandbox Code Playgroud)
aad*_*hsg 16
试试这个.
->leftjoin('users', function($join){
$join->on('users.id','=','messages.sender_id'); // i want to join the users table with either of these columns
$join->orOn('users.id','=','messages.receiver_id');
})
Run Code Online (Sandbox Code Playgroud)