【问题标题】:MySql Query error in LaravelLaravel 中的 MySql 查询错误
【发布时间】:2017-12-19 09:52:13
【问题描述】:

我使用的是 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' in where子句不明确(SQL:select * from usersinner join addprojects on 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();

【问题讨论】:

    标签: laravel-5 laravel-5.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();
      

      【讨论】:

        【解决方案3】:

        因为 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();
        

        【讨论】:

        • 谢谢它的工作。但我认为条件不能正常工作。如果我返回 $projects_for_emp;它显示带有空白页的 jeson 单词。但是如果我 ->where('users.emp_id', '245') ,它将显示价值
        猜你喜欢
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 1970-01-01
        • 2010-09-05
        • 1970-01-01
        • 2018-08-11
        • 2016-07-21
        • 1970-01-01
        相关资源
        最近更新 更多