Left Join 未按预期工作 SQL 接受它
Left Join not working as intended yet SQL accepts it
HomeController.php
public function index()
{
$employees = DB::table('timings')
->distinct()
->selectRaw("timings.employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime")
->leftJoin('employees','timings.employee_id','=','employees.employee_id')
->where( DB::raw('cast(time_logged AS date)') , DB::raw('CURDATE()'))
->groupBy('timings.employee_id', DB::raw('cast(time_logged AS date)') )
->get();
return view('home',compact('employees'));
}
实际SQL
employee_id | minTime | maxTime
1 2019-03-25 09:00:00 2019-03-25 14:00:00
...
结果
Array (
[0] => stdClass Object (
[employee_id] => 1
[minTime] => 2019-03-25 09:00:00
[maxTime] => 2019-03-25 14:00:00
)
...
出于某种原因,MYSQL 接受左连接但没有任何反应!我有 2 tables,员工和时间安排。无论我是包含 leftJoin 还是将其注释掉,代码都有效,但 EMPLOYEE table 不会显示。我不知道为什么它不起作用。
您未从 employee
table
中选择详细信息
->selectRaw("timings.employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime,employees.first_name, employees.last_name")
HomeController.php
public function index()
{
$employees = DB::table('timings')
->distinct()
->selectRaw("timings.employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime")
->leftJoin('employees','timings.employee_id','=','employees.employee_id')
->where( DB::raw('cast(time_logged AS date)') , DB::raw('CURDATE()'))
->groupBy('timings.employee_id', DB::raw('cast(time_logged AS date)') )
->get();
return view('home',compact('employees'));
}
实际SQL
employee_id | minTime | maxTime
1 2019-03-25 09:00:00 2019-03-25 14:00:00
...
结果
Array (
[0] => stdClass Object (
[employee_id] => 1
[minTime] => 2019-03-25 09:00:00
[maxTime] => 2019-03-25 14:00:00
)
...
出于某种原因,MYSQL 接受左连接但没有任何反应!我有 2 tables,员工和时间安排。无论我是包含 leftJoin 还是将其注释掉,代码都有效,但 EMPLOYEE table 不会显示。我不知道为什么它不起作用。
您未从 employee
table
->selectRaw("timings.employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime,employees.first_name, employees.last_name")