я хочу этот запрос в laravel - PullRequest
0 голосов
/ 13 июня 2019

Я хочу знать, как написать точный запрос в laravel, используя соединения, пожалуйста, помогите кому-нибудь решить эту проблему

select tickets.*  from `employees`  inner join `tickets` on  
 `employees`.`user_id` = `tickets`.`emp_id` inner join  `categories` on  
 `categories`.`acc_id` = `employees`.`acc_id` and `categories`.`id` = 
  (`tickets`.`cat_id` or `tickets`.`cat_id`=0)  where (`employees`.`user_id` = 11)

Ответы [ 2 ]

2 голосов
/ 13 июня 2019

Если вы используете простой построитель запросов,

$result = DB::select(DB::raw("tickets.*"))
->join("tickets","employees.user_id","=","tickets.emp_id")
->join('categories', function ($join) {
            $join->on("categories.acc_id","=","employees.acc_id");
            $join->on("categories.id","=",DB::raw("(tickets.cat_id or tickets.cat_id=0)")

})->where("employees.user_id",11)->get();
1 голос
/ 13 июня 2019

Поскольку ответ от @Drakula Predator хорош

Но я избегал использования Raw запросов

$laravelWay = DB::table('employees')
                ->select('tickets.*')
                ->join('tickets','employees.user_id','=','tickets.emp_id')
                ->join('categories', function ($join) {
                        $join->on('categories.acc_id','=','employees.acc_id')
                            ->on('categories.id','=','tickets.cat_id')
                            ->orOn('tickets.cat_id','=','0');
                                })
                ->where('employees.user_id','=',11);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...