我正在使用laravel 5.4。当试图跑
select * from `users` inner join `addprojects` on `users`.`emp_id` = `addprojects`.`emp_id` where `emp_id` = $emp_id)"
它产生:
“SQLSTATE [23000]:完整性约束违规:1052 where子句中的'emp_id'列不明确(SQL:select * from
users
inner joinaddprojects
onusers
.emp_id
=addprojects
.emp_id
whereemp_id
= $ emp_id)”
$emp_id= Auth::user()->emp_id;
$projects_for_emp = DB::table('users')->join('addprojects', 'users.emp_id', '=', 'addprojects.emp_id')->where('emp_id', '$emp_id')->get();
emp_id
在两个表中,所以可以使用users.emp_id
或addprojects.emp_id
->where('users.emp_id', '=', $emp_id)
您已指定两个表中都存在的列名,因此使用users.emp_id
或addprojects.emp_id
无关紧要哪一个
例:
$emp_id= Auth::user()->emp_id;
$projects_for_emp = DB::table('users')
->join('addprojects', 'users.emp_id', '=', 'addprojects.emp_id')
->where('users.emp_id', '$emp_id')
->get();
因为users和addprojects表都具有相同的命名字段“emp_id”。您可以像下面这样更改代码。
$emp_id= Auth::user()->emp_id;
$projects_for_emp = DB::table('users')
->join('addprojects', 'users.emp_id', '=', 'addprojects.emp_id')
->where('users.emp_id', $emp_id)
->get();