join - joining 3 tables in laravel using DB with similar column names -
i have 3 three tables in database user_projectswith columns
project_id, user_id, role project_invitations columns
project_id, email, role and users id, email
i want join 3 tables using laravel query builder can
userid, role, email, invited_user null member test@gmail.com true 1 owner test123@gmail.com false 2 member test12@gmail.com true so far got following data
[ { "email":"test@sharklasers.com", "id":2, "role":"owner", "invitedemail":"test@gmail.com", "invitedrole":"member" }, { "email":"test@sharklasers.com", "id":2, "role":"owner", "invitedemail":"safda@gmail.com", "invitedrole":"member" } ] using following query
db::table('user_projects') ->join('users', 'user_projects.user_id', '=', 'users.id') ->join('project_invitations', 'project_invitations.project_id','=','user_projects.project_id') ->where('user_projects.project_id', '=', $projectid) ->select('users.email', 'users.id', 'user_projects.role', 'project_invitations.email invitedemail','project_invitations.role invitedrole') ->get();
you need use outer joins records if there not join record.
db::table('user_projects') ->join('users', 'user_projects.user_id', '=', 'users.id', 'outer') ->join('project_invitations', 'project_invitations.project_id','=','user_projects.project_id', 'outer') ->where('user_projects.project_id', '=', $projectid) ->select('users.email', 'users.id', 'user_projects.role', 'project_invitations.email invitedemail','project_invitations.role invitedrole') ->get();
Comments
Post a Comment