由于某种原因,当我将原始MYSQL放入PHPMYADMIN时,它可以按我期望的方式工作。但是,当我使用Laravel(我看不到为什么不起作用!)时,会出现Syntax error or access violation
错误
任何帮助将不胜感激。
Laravel
$timings = DB::table('timings')
->distinct()
->selectRaw("employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime")
->where('timings.employee_id' , $id)
->groupBy('timings.employee_id', 'cast(time_logged AS date)' )
->get();
原始MYSQL
SELECT DISTINCT employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime
FROM timings
WHERE timings.employee_id = 1
GROUP BY timings.employee_id, cast(time_logged AS date)
答案 0 :(得分:2)
虽然,不能说不推荐这样做,但绝对不是Laravel风格。
假设您有App\User
和和App\Timing
。您为什么不使用hasOne
连接它们,所以您的计时表如下所示:
| login_time | logout_time | user_id |
|------------|-------------|---------|
| xx-xx PM | xx-xx PM | 1 |
| xx-xx PM | xx-xx AM | 2 |
现在您可以轻松做到了,$user->timings->login_time
:)
为什么人们害怕人际关系,您应该尽可能使用它。
答案 1 :(得分:1)
.env
文件中。)因此您的查询如下:
$timings = DB::table('timings')
->distinct()
->selectRaw("employee_id, min(time_logged) AS minTime, max(time_logged) AS maxTime")
->where('timings.employee_id' , $id)
->groupBy('timings.employee_id', DB::raw('cast(time_logged AS date)'))
->get();