php - Laravel 中的查询生成器(GROUP BY)

标签 php mysql laravel-query-builder

$bo_facilities = DB::select('SELECT 
                a.bo_facility_code,
                a.bo_facility_groupcode,
                a.bo_number,
                a.bo_indYesOrNo,
                a.bo_indLogic,
                b.bo_content_facility_description
                FROM bo_facilities AS a 
                RIGHT JOIN bo_content_facilities AS b
                ON b.bo_content_facility_code = a.bo_facility_code AND b.bo_content_facility_facilityGroupCode = a.bo_facility_groupcode

                WHERE a.bo_hotel_code =  "'.$hotel['code'].'"  GROUP BY b.bo_content_facility_description');

错误消息:

"message": "SQLSTATE[42000]: Syntax error or access violation: 1055
'philex.main.a.bo_facility_code' isn't in GROUP BY (SQL: 

SELECT a.bo_facility_code,
       a.bo_facility_groupcode,
       a.bo_number,
       a.bo_indyesorno,
       a.bo_indlogic,
       b.bo_content_facility_description
FROM   bo_facilities AS a
       right join bo_content_facilities AS b
               ON b.bo_content_facility_code = a.bo_facility_code
                  AND b.bo_content_facility_facilitygroupcode =
                      a.bo_facility_groupcode
WHERE  a.bo_hotel_code = "'.$hotel['code'].'"
GROUP  BY b.bo_content_facility_description 

)",

由于 GROUP BY 方法,我收到此错误。

最佳答案

看看aggregate functions在mysql中。

如果您按 b.bo_content_facility_description 对结果进行分组,则 SELECT 中不在 GROUP BY 中的其他字段应与诸如 SUMCOUNT 等函数

按该单个字段进行分组而不对其他字段进行任何排列是有意义的,因为您没有指定如何组合其他字段来获取分组字段的单个记录。

我建议您理清思路,了解您期望的结果。

关于php - Laravel 中的查询生成器(GROUP BY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55310962/

相关文章:

php - 将字体安装到服务器

mysql - 在 SQL 中创建表时出错

mysql - Laravel 多对多如何在 Eloquent 或查询构建器中形成查询

mysql - Laravel DB 查询构建器左连接相关计数

php - 创建和更新 Laravel Eloquent

php - 使用 yaml 路由描述时如何在运行时获取 Symfony2 中的路由名称?

php - 如何使用mysql和php仅显示今天或仅昨天的数据?

mysql - 如何在整个 MySQL 脚本中假设一个表前缀?

mysql - 如何将mysql连接到objective c?

php - 将 $conn 变量传递给函数时遇到问题