如何在laravel 4.2中编写子查询sql

时间:2016-01-03 10:49:18

标签: laravel laravel-4

我是Laravel 4.2的新手而且我有这样的Sub Query Sql

Select *, Count(*) as total_rows From(
SELECT test_id, 
SUM(IF(app.status='complete',apt.result,0)) AS complete_sum, 
SUM(IF(app.status='process',apt.result,0)) AS process_sum  
FROM application_test AS apt 
JOIN application AS app ON app.id=apt.application_id 
GROUP BY apt.test_id)

我的问题是如何在laravel 4.2上编写这个子查询sql

2 个答案:

答案 0 :(得分:0)

将MYSQL CASE转换为LARAVEL查询

$query = DB::raw("(CASE WHEN user_group='1' THEN 'Admin' WHEN user_group='2' THEN 'User' ELSE 'Superadmin' END) as name");

并在

中执行此查询
DB::table('tablename')->select($query)->get();

YourModelClass::select($query)->get();

你会得到结果。

注意:语法基于Laravel 5.0

答案 1 :(得分:-1)

您可以像这样制作子查询。

Test::where('id', function($query){
    $query->select('other_test_id')
    ->whereIn('category_id', ['223', '15'])
    ->where('active', 1);
})->get()

如果你是Laravel的新手,请考虑使用它的最新版本,5.2;)