Laravel中的MySql查询错误

问题描述 投票:0回答: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 where子句中的'emp_id'列不明确(SQL:select * from users inner join addprojects on users.emp_id = addprojects.emp_id where 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();
laravel-5 laravel-5.3
3个回答
1
投票

emp_id在两个表中,所以可以使用users.emp_idaddprojects.emp_id

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

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
投票

因为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();
© www.soinside.com 2019 - 2024. All rights reserved.