laravel查询构建器中的SQL原始查询

时间:2018-01-16 06:53:44

标签: mysql laravel

我有一个有效的 SQL 查询。

SELECT stuid,grade,SUM(full_amount) FROM due_payments group by stuid having SUM(full_amount) !=15600

这在 MySQL 工作台和 phpmyadmin 中运行良好,但我似乎无法在 Laravel 5.3

中完成这项工作

我在没有运气的Laravel应用程序上试过这个

$someVariable = Input::get(15600);

$results = DB::select( DB::raw("SELECT stuid,grade,SUM(full_amount) FROM due_payments 
                group by stuid having SUM(full_amount) =:somevariable)", array(
        'somevariable' => $someVariable,
)));

有人可以帮我解决这个问题。谢谢。

2 个答案:

答案 0 :(得分:1)

使用query builder

$results = DB::table('due_payments')
        ->select('stuid', 'grade',DB::raw('SUM(full_amount)'))
        ->groupBy('stuid')
        ->havingRaw('SUM(full_amount) != 15600')
        ->get();

答案 1 :(得分:1)

首先,如果所有Input :: get()都没有将值作为参数,但元素名称
$someVariable = Input::get(15600);
您可以使用$someVariable = 15600;

然后使用查询生成器而不是原始SQL查询

     $results = DB::table('due_payments')
     ->select(array('stuid', 'grade', DB::raw('SUM(full_amount)'))) 
     ->groupBy('stuid')
     ->havingRaw('SUM(full_amount) != '.$someVariable)
     ->get();