如何在laravel查询中使用IN运算符(eleqouent和raw query)?

时间:2016-03-01 13:54:26

标签: php laravel laravel-5 laravel-routing laravel-5.2

我需要使用IN运算符从数据库中获取数据。我尝试使用它如下所示并得到一个错误:

$pr =DB::('select * from prstuff p where p.pid in (select pid from prdrop)'); 

我是Laravel的新手,并且不知道如何使用像IN这样的运算符,所以请向我解释如何使用它。

2 个答案:

答案 0 :(得分:4)

您可以在DB::raw()中设置自定义选择,如下所示:

DB::select(DB::raw('select * from prstuff p where p.pid in (select pid from prdrop)'));

或者您可以像这样使用whereIn()

DB::table('prstuff')
->select('*')
->whereIn('pid', function($query)
{
    $query->select('pid')
    ->from('prdrop');
})
->get();

答案 1 :(得分:3)

您没有在db类上调用任何函数。您可以像这样DB::select ()

调用select函数
$pr =DB::select('select * from prstuff p where p.pid in (select pid from prdrop)');