Php Laravel联接多个表不工作
我在Laravel5.4上遇到了一个问题,当我尝试只使用一个连接时,它工作正常并返回正确的数据,但是他们的“添加另一个连接”不起作用Php Laravel联接多个表不工作,php,laravel,laravel-5,orm,laravel-eloquent,Php,Laravel,Laravel 5,Orm,Laravel Eloquent,我在Laravel5.4上遇到了一个问题,当我尝试只使用一个连接时,它工作正常并返回正确的数据,但是他们的“添加另一个连接”不起作用 $data = Player::select(DB::raw('CONCAT(familyName,", ",firstName) AS fullName')) ->where('firstname', 'like', '%'.$search.'%') ->orWhere('familyName', 'like', '%'.$searc
$data = Player::select(DB::raw('CONCAT(familyName,", ",firstName) AS fullName'))
->where('firstname', 'like', '%'.$search.'%')
->orWhere('familyName', 'like', '%'.$search.'%')
->orderBy('familyName', 'asc')
->join('teams', 'players.primaryClubId', '=', 'teams.clubId')
->join('person_competition_statistics', 'players.personId', '=', 'person_competition_statistics.personId')
->addSelect(['players.*', 'teams.teamName', 'teams.teamNickname', 'teams.teamCode'])
->get()
->unique() //remove duplicates
->groupBy(function($item, $key) { //group familyName that starts in same letter
return substr($item['familyName'], 0, 1);
})
->map(function ($subCollection) {
return $subCollection->chunk(4); // put your group size
});
return $data;
返回的错误:
QueryException in Connection.php line 647:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'familyName' in field list is ambiguous (SQL: select CONCAT(familyName,", ",firstName) AS fullName, `players`.*, `teams`.`teamName`, `teams`.`teamNickname`, `teams`.`teamCode` from `players` inner join `teams` on `players`.`primaryClubId` = `teams`.`clubId` inner join `person_competition_statistics` on `players`.`personId` = `person_competition_statistics`.`personId` where `firstname` like %% or `familyName` like %% order by `familyName` asc)
若要加入表,则应提供表别名。就像团队是t,球员是p,然后列名是p.playername在你要加入的三个表中,是否有多个表中的列
familyName
?如果是这样,则需要在查询中使用表名的任何地方都使用表名作为前缀。像DB::raw('CONCAT(players.familyName,,,,,firstName)作为全名)
谢谢@ayip的帮助,现在就到了working@PenAndPapers若要加入表,则应提供表别名。比如团队是t,球员是p,然后列名是p@NikhilRadadiya@PenAndPapers工作?