mysql - SQL错误: 'database.table.field isn' t in GROUP BY

标签 mysql group-by

我在安装第 3 方软件时收到此消息。我已阅读相关主题,所有主题都建议将 sql_mode 设置为空字符串 (SET sql_mode = ''),但该解决方案对我不起作用。仍然遇到同样的错误。我需要在我的配置文件或其他文件中设置它吗?

这里有一些有用的信息;

服务器版本:5.6.15-56-log Percona Server (GPL),版本 rel63.0,修订版 519

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_mode      |       |
+---------------+-------+
1 row in set (0.00 sec)

失败的查询并显示错误消息是;

mySQL query error: SELECT MAX(e.entry_id) as max, MAX(e.entry_date) as maxdate,b.blog_id, b.blog_name, b.blog_seo_name FROM blog_entries e  LEFT JOIN blog_blogs b ON ( b.blog_id=e.blog_id )   WHERE e.entry_status='published' AND e.entry_banish=0 AND e.entry_featured=0 AND b.blog_view_level='public' AND b.blog_disabled=0 GROUP BY e.blog_id, b.blog_name, b.blog_seo_name ORDER BY maxdate DESC LIMIT 0,50

SQL error: 'db_name_ipb.b.blog_id' isn't in GROUP BY
SQL error code: 1055

有什么想法吗?

更新

不幸的是,代码已加密,因此无法尝试您的建议。另外 - 正如上面指定的 - 更改 SQL 模式并没有解决我的问题。如果有进展,我将继续调查并更新问题。

最佳答案

您正在选择b.blog_id并按e.blog_id分组。这就是问题所在。

SELECT MAX(e.entry_id) as max, MAX(e.entry_date) as maxdate,b.blog_id, b.blog_name, b.blog_seo_name 
FROM blog_entries e  LEFT JOIN 
     blog_blogs b ON ( b.blog_id=e.blog_id )   
WHERE e.entry_status='published' AND e.entry_banish=0 AND e.entry_featured=0 
     AND b.blog_view_level='public' AND b.blog_disabled=0 
GROUP BY b.blog_id, b.blog_name, b.blog_seo_name 
ORDER BY maxdate DESC LIMIT 0,50

关于mysql - SQL错误: 'database.table.field isn' t in GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27878604/

相关文章:

php - laravel 具有内部关系的多对多关系

mysql - 检索每组中的最后一条记录 - MySQL

python - .apply 可以使用其他团体的信息吗?

php - 使用 mysql_fetch_assoc 中的变量从多行中的列输出数据。?

php - Mysql 需要很长时间来插入和更新 Yii Framework

php - 在 MySQL 中调用存储过程后使用 GROUP BY

python - 在 python pandas 中的 groupby 之后填写列中缺少的行

sql - GROUP BY 语法导致 "missing expression"错误

php - 通过单击在 xampp 中运行 php 项目

mysql - 无法撼动 MySQL