【问题标题】:Need a SQL to Laravel Eloquent Translation需要一个 SQL 到 Laravel Eloquent 翻译
【发布时间】:2014-06-23 20:30:37
【问题描述】:
我需要将以下 SQL 查询翻译成 Laravel 的 Eloquent 语法:
SELECT a.*
FROM applications a
LEFT JOIN ratings r
ON a.id = r.application_id
AND r.admin_id = 1
WHERE r.admin_id IS NULL
我能够让它工作的唯一方法是使用 DB::raw 运行查询,但我很好奇它在使用 Eloquent 语法时应该是什么样子。理想情况下,我希望能够顺利迁移到任何其他数据库。
【问题讨论】:
标签:
mysql
sql
laravel
laravel-4
【解决方案1】:
您可以将闭包传递给连接。您需要在指定变量时使用DB::raw(),而不是要加入的另一个数据库列。
DB::table('applications')
->select('applications.*')
->leftJoin('ratings', function($join)
{
$join->on('ratings.application_id', '=', 'applications.id');
$join->on('ratings.admin_id', '=', DB::raw('1'));
})
->whereNull('ratings.admin_id')
->get()