我正在使用laravel 5.4。试图运行时
select * from `users` inner join `addprojects` on `users`.`emp_id` = `addprojects`.`emp_id` where `emp_id` = $emp_id)"
它产生:
“SQLSTATE [23000]:完整性约束违规:1052列'emp_id' where子句是不明确的(SQL:select * from
users
inner joinaddprojects
上的users
。emp_id
=addprojects
。emp_id
其中emp_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();
答案 0 :(得分:2)
您已指定两个表中都存在的列名,因此使用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();
答案 1 :(得分:1)
因为用户和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();
答案 2 :(得分:1)
emp_id
,因此可以使用users.emp_id
或addprojects.emp_id
->where('users.emp_id', '=', $emp_id)