下面是我雄辩的查询:
$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中遗漏了什么?
where()方法将列名作为第一个参数,如果缺少下一个参数,它将其视为,其中column为null约束-这就是为什么您会得到这样一个奇怪的查询。使用where Raw()代替:
->whereRaw('connections.firm_id = invites.firm_id')