【发布时间】:2019-08-15 12:45:32
【问题描述】:
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 张桌子,员工和时间。无论我是包含 leftJoin 还是将其注释掉,代码都有效,但 EMPLOYEE 表不会显示。我不知道为什么它不起作用。
【问题讨论】:
-
生成的实际 SQL 是什么?请张贴。
-
@Dai 添加到编辑中
-
@NazarAbubaker 你还没有包含生成的 SQL。
-
这是他正在生成的 SQL:
select distinct timings.employee_id,min(time_logged) AS minTime,max(time_logged) AS maxTime from `timings` left join `employees` on `timings`.`employee_id` = `employees`.`employee_id` where cast(time_loggedASdate) = CURDATE() group by `timings`.`employee_id`, cast(time_loggedASdate) -
您是否忘记在查询中添加名字、姓氏和头像列选择器?在 selectRaw() 中。
标签: php laravel laravel-query-builder