【发布时间】:2016-11-27 23:58:22
【问题描述】:
我正在尝试在 laravel 中进行以下查询:
SELECT a.name AS subname, a.area_id, b.name, u. id, u.lawyer_id,u.active_search,
FROM subarea a
LEFT JOIN user_subarea u ON u.subarea_id = a.id
AND u.user_id = ?
LEFT JOIN branch b ON a.area_id = b.id
思路是获取子区域,看看搜索是否被用户激活。
user_subarea 表可能有一条记录与 subarea 表的 id 匹配,其中 active_search 等于 0 或 1。如果它不存在,我希望查询返回 null。
当我在 Laravel 中尝试 eloquent 时,我能够在原始 SQL 中实现这一点,但我没有返回任何值。我做了以下事情:
$query = DB::table('subarea')
->join('user_subarea', function($join)
{
$value = \Auth::user()->id;
$join->on( 'subarea.id', '=', 'user_subarea.subarea_id')->where('user_subarea.user_id', '=',$value);
})
->leftJoin('branch', 'subarea.area_id', '=', 'branch.id')
->select('branch.name', 'subarea.name as subarea', 'user_subarea.active_search_lawyer', 'user_subarea.id' )
->get();
任何帮助将不胜感激。
【问题讨论】: