一个有关group by的错误
事例:查询有奖金的每个部门的部门名和部门的领导编号和该部门的最低工资
SELECT department_name,MIN(salary),departments.manager_id
FROM departments,employees
WHERE departments.department_id=employees.department_id
AND commission_pct IS NOT NULL
GROUP BY department_name;
运行结果出现:
[Err] 1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'myemployees.departments.manager_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
大意为:表达式departments.manager_id不在group by子句中,并且包含非聚合列‘myemployees.departments.manager_id’,该功能不依赖与group by 子句中的列,这与sql_mode=only_full_group_by不兼容
原因:
这个错误发生咋MySQL5.7.5和以后上,因为5.7.5默认的sql模式配置为ONLY_FULL_GROUP_BY,这个配置启动的为‘严格ANSIsql规则’,此规则严格要求在group by的时候,没有聚合的列(聚合的列表示group by必须带着所有要查询的列)
代码更正:
SELECT department_name,MIN(salary),departments.manager_id
FROM departments,employees
WHERE departments.department_id=employees.department_id
AND commission_pct IS NOT NULL
GROUP BY department_name,departments.manager_id;
若要永久避免这个问题:
在mysql> 命令行中执行以下步骤:
1、show variables like "sql_mode";
2、set sql_mode='';
3、set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
附带(可以看看):https://www.cnblogs.com/Vera-y/p/10923999.html
最新文章
- C# 必看书籍
- Activity的Launch Mode
- Tomcat服务器重启失败:The server may already be running in another process, or a system process may be using the port.
- vncserver改变屏幕分辨率
- oracle 基本语句练习(一) where, between ,null, like,转义字符,order by
- EJB (not bound)
- JS获取中文拼音首字母,并通过拼音首字母高速查找页面内的中文内容
- CQOI2015 选数
- sublime text 设置
- 转:web_reg_save_param的使用详解
- JavaScript数据结构与算法(八) 集合(ECMAScript 6中定义的类似的Set类)
- Android的WebView调试工具(无需Fan墙,可同时调试多个设备,永不过期)
- android开发学习 ------- 关于getSupportFragmentManager()不可用的问题
- 第一个spring简单的helloworld
- SpringBoot 之集成邮件服务.
- tab下图片要求
- Sql Server 中 根据列名查询表名
- pandas 常用清洗数据(一)
- POJ 2280 Amphiphilic Carbon Molecules 极角排序 + 扫描线
- PKU2418_树种统计(map应用||Trie树)
热门文章
- Linux环境变量永久设置方法(zsh)
- Hadoop 基础知识
- 0 ‘+new Array(017)’ 输出? js+相当于Number()类型转换
- to meet you 常用类库与技巧
- canvas的基础入门
- w - 显示已经登录的用户以及他们在做什么
- unicode_stop - 撤销控制台unicode模式(例如, 回到8-bit模式).
- QueryList 内容过滤
- 大转盘抽奖css3+js(简单书写)
- Unity UGUI和特效(含粒子系统和3D Object)之间层级问题