Tig*_*ger 3 php mariadb laravel eloquent
我需要运行一个自定义查询,我已经尝试了所有这些方法
$sql = "SELECT acd.*, DATE_FORMAT(acd.cdate, '%d/%m/%Y') cdate_disp,
GROUP_CONCAT(CONCAT_WS(', ', car.type, car.session, crd.name) SEPARATOR '<br />') rd_names,
acb.booking_status my_booking_status
FROM app_data acd
INNER JOIN crmaccounts ca ON ca.id = acd.client_crm_id
LEFT JOIN crmaccount_rdids car ON car.account_id = ca.id
LEFT JOIN crmrd_ids crd ON crd.id = car.rd_id
LEFT JOIN app_bookings acb ON acb.call_ref_id = acd.call_ref AND acb.user_id = 12391
WHERE 1=1
AND acd.client_crm_id NOT IN (select account_id from bstaff WHERE user_id=12391)
GROUP BY acd.id
ORDER BY acd.cdate, ctiming";
DB:select($sql);
Run Code Online (Sandbox Code Playgroud)
投掷
Illuminate \ Database \ QueryException (42000) SQLSTATE[42000]: 语法错误或访问冲突:1055 'mydatabase.acd.call_ref' 不在 GROUP BY (SQL: ....)
DB::select($sql);
DB::raw($sql);
DB::select(DB::raw($sql));
//even with pdo
$sth = DB::getPdo()->prepare($sql);
$sth->execute();
$data = $sth->fetchAll(\PDO::FETCH_OBJ);
PDOException (42000)
SQLSTATE[42000]: Syntax error or access violation: 1055 'mydatabase.acd.call_ref' isn't in GROUP BY
Run Code Online (Sandbox Code Playgroud)
似乎开始工作的唯一方法是列出group by可行但不方便的所有表列。
我可以直接在 phpmyadmin 中运行相同的查询。所以我不确定为什么当我通过 Laravel 运行它时,它要求我添加所有列。
我安装了 MariaDB,并且 Laravel 和 PhpMyAdmin 都连接到同一个实例。幼虫版本是 5.8.5。
请查看完整查询,因为我在这里也提出了问题,但找不到任何答案 - https://laracasts.com/discuss/channels/eloquent/query-runs-ok-in-phpmyadmin-but-dbselect-throws -例外
| 归档时间: |
|
| 查看次数: |
2004 次 |
| 最近记录: |