我试图获取一些数据,但我只是得到了这个错误
SQLSTATE [42000]:语法错误或访问冲突:1055' ms_mascotas.ms_razas.id'不在GROUP BY(SQL:选择
ms_razas.id
,ms_razas.nombre
,ms_mascotas.raza_id
,ms_mascotas.id
来自ms_mascotas
内部联接ms_razas
{ {1}} =ms_razas.id
其中ms_mascotas.raza_id
= 1组ms_razas.tipo_animal_id
)"
我的查询是
ms_mascotas.raza_id
我一直在读这个错误,它与数据库文件中的严格模式有关,默认情况下strict设置为false,我该怎么办?
答案 0 :(得分:0)
您选择的所有内容都必须添加到组中,这是一个示例
Mascota::select("ms_razas.id","ms_razas.nombre","ms_mascotas.raza_id","ms_mascotas.id")
->join("ms_razas","ms_razas.id","=","ms_mascotas.raza_id")
->where("ms_razas.tipo_animal_id",$id)
->groupBy("ms_razas.id","ms_razas.nombre","ms_mascotas.raza_id","ms_mascotas.id")
->get();
你需要一个完整的小组:
SELECT `name`, `type`, `language`, `code`
FROM `users`
WHERE `verified` = '1'
GROUP BY `name`, `type`, `language`, `code`
ORDER BY `count` DESC LIMIT 0, 25
SQL92要求select子句中的所有列(聚合除外)都是group by子句的一部分。 SQL99稍微放宽了这个限制,并声明select子句中的所有列必须在功能上依赖于group by子句。 MySQL默认允许部分分组,这可能产生非确定性答案,例如:
create table t (x int, y int);
insert into t (x,y) values (1,1),(1,2),(1,3);
select x,y from t group by x;
+------+------+
| x | y |
+------+------+
| 1 | 1 |
+------+------+
即。为组x选择随机y。可以通过设置@@sql_mode
:
set @@sql_mode='ONLY_FULL_GROUP_BY';
select x,y from t group by x;
ERROR 1055 (42000): 'test.t.y' isn't in GROUP BY
答案 1 :(得分:0)
转到config\database.php
并更改您使用的数据库
'strict' => false