Laravel

时间:2017-12-19 09:52:13

标签: laravel-5 laravel-5.3

我正在使用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 join   addprojects上的usersemp_id = addprojectsemp_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();

3 个答案:

答案 0 :(得分:2)

您已指定两个表中都存在的列名,因此使用users.emp_idaddprojects.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_idaddprojects.emp_id

->where('users.emp_id', '=', $emp_id)