Laravel查询在id列上返回Null ID

时间:2016-01-14 19:45:27

标签: php mysql laravel laravel-4 eloquent

好吧,我有一些代码用于从我的数据库中的某些左连接中检索数据,在检索此数据后,我使用每个的id来填充模态。问题是它适用于已检索的一些数据。因为当我查看查询结果时,我注意到某些有效数据的id为null,而不是

 $someuser =  DB::table('users')
->join('sometable', 'sometable.user_id', '=','users.id')
->leftjoin('sometable', 'users.id', '=', 'skills.user_id')
->leftjoin('sometable', 'users.id', '=','schools.user_id')
->leftjoin('sometable', 'users.id', '=', 'languages.user_id')
->leftjoin('sometable','users.id', '=', 'memberships.user_id')
->leftjoin('sometable', 'users.id', '=', 'convictions.user_id')
->leftjoin('sometable', 'users.id', '=', 'work_experiences.user_id')
->select('users.*','sometable.name as sometablename','sometable.*')
->where('users.first_name', '<>', '')->whereNotNull('users.id')
->orderBy('sometable.updated_at', 'DESC')->groupby('users.first-name')->distinct()->paginate(100); 
从那以后,查询结果如下:

{"total":966,"per_page":100,"current_page":1,"last_page":10,"from":1,"to":100,"data":[{"id":null, etc

简单的说法为什么我的身份无效

我认为它没有向我显示超过1900年的ID,所以如果用户超过1900它显示我null

1 个答案:

答案 0 :(得分:2)

您正在从多个表中选择*。由于您还要加入,因此很可能没有任何内容可以加入,因此您的数据库将这些列作为null返回。具体选择您需要的ID,并将其别名为不会被其他列覆盖的内容。