Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 原始SQL到laravel查询生成器_Mysql_Laravel - Fatal编程技术网

Mysql 原始SQL到laravel查询生成器

Mysql 原始SQL到laravel查询生成器,mysql,laravel,Mysql,Laravel,如何将这个原始sql构建器转换为laravel DB构建器 SELECT * FROM `applications` WHERE EXISTS (SELECT * FROM `applicants` INNER JOIN `applicant_application` ON `applicants`.`id` =

如何将这个原始sql构建器转换为laravel DB构建器

SELECT * 
FROM   `applications` 
WHERE  EXISTS (SELECT * 
               FROM   `applicants` 
                      INNER JOIN `applicant_application` 
                              ON `applicants`.`id` = 
                                 `applicant_application`.`applicant_id` 
               WHERE  `applications`.`id` = 
                      `applicant_application`.`application_id` 
                      AND `user_id` = 18) 
ORDER  BY `created_at` DESC 
LIMIT 20
这是我尝试过的,但似乎不起作用

DB::table('applications as apt')
->whereExists( function ($q) {
    $q->from('applicants as app')
    ->join('applicant_application as aa', 'app.id', '=', 'aa.applicant_id')
    ->where('apt.id', '=', 'aa.application_id')
    ->where('app.user_id', '=', 18);
})->orderBy('created_at', 'DESC')->paginate(10);

非常感谢您的帮助,因为
apt.id
aa.application\u id
是diff表中的两列,您正在使用
where
apt.id
字符串
'aa.application\u id'
进行比较

您需要使用whereColumn来比较两个不同的列:

->whereColumn('apt.id','=','aa.application\u id')

因为
apt.id
aa.application\u id
是来自不同表格的两列,您使用
where
apt.id
字符串
进行比较

您需要使用whereColumn
来比较两个不同的列:

->whereColumn('apt.id','=','aa.application\u id')

太好了,谢谢:)太好了,谢谢:)