Eloquent添加'为空'左连接后查询的位置

时间:2016-01-12 12:09:26

标签: php sql laravel laravel-4 eloquent

这是我雄辩的查询:

$table =  DB::table('invites')
       ->leftjoin('connections', 'connections.user_id', '=', 'invites.user_id')
       ->where(DB::raw('connections.firm_id = invites.firm_id'))
       ->get();

它应该返回一个连接到邀请他们的公司的用户表。

查询日志显示执行以下查询:

'query' => 'select * from `invites` left join `connections` on `connections`.`user_id` = `invites`.`user_id` where connections.firm_id = invites.firm_id is null'

最后is null弄乱了一切。我假设它与列名相同或者我缺少DB :: raw的事实有关吗?

1 个答案:

答案 0 :(得分:1)

其中()方法将列名作为第一个参数,如果缺少下一个参数,则将其视为其中列为空约束 - 这就是为什么你得到这样一个奇怪的查询。请改用 whereRaw()

->whereRaw('connections.firm_id = invites.firm_id')