这是我雄辩的查询:
$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的事实有关吗?
答案 0 :(得分:1)
其中()方法将列名作为第一个参数,如果缺少下一个参数,则将其视为其中列为空约束 - 这就是为什么你得到这样一个奇怪的查询。请改用 whereRaw():
->whereRaw('connections.firm_id = invites.firm_id')