为了账号安全,请及时绑定邮箱和手机立即绑定

SELECT列表不在GROUP BY子句中,并且包含非聚合列...

SELECT列表不在GROUP BY子句中,并且包含非聚合列...

梦里花落0921 2019-08-27 17:37:11
SELECT列表不在GROUP BY子句中,并且包含非聚合列...与sql_mode = only_full_group_by不兼容AM在我的带有WAMP服务器的Windows PC上使用MySQL 5.7.13这里我的问题是在执行此查询时SELECT *FROM `tbl_customer_pod_uploads`WHERE `load_id` = '78' AND      `status` = 'Active'GROUP BY `proof_type`我总是得到这样的错误SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'returntr_prod.tbl_customer_pod_uploads.id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容你能告诉我最好的解决方案吗?我需要像结果一样+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+| id | user_id | load_id | bill_id | latitude | langitude | proof_type | document_type | file_name    | is_private | status | createdon           | updatedon           |+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+|  1 |       1 | 78      | 1       | 21.1212  | 21.5454   |          1 |             1 | id_Card.docx |          0 | Active | 2017-01-27 11:30:11 | 2017-01-27 11:30:14 |+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
查看完整描述

3 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

only_full_group_by打开MySQL 模式时,这意味着在使用时将应用严格的ANSI SQL规则GROUP BY。关于您的查询,这意味着如果您GROUP BY是该proof_type列,那么您只能选择两件事:

  • proof_type列或

  • 任何其他列的聚合


由其他列的“集合”,我的意思是使用聚合功能,诸如MIN()MAX()AVG()与另一列。因此,在您的情况下,以下查询将是有效的:

SELECT proof_type,
       MAX(id) AS max_id,
       MAX(some_col),
       MIN(some_other_col)FROM tbl_customer_pod_uploadsWHERE load_id = '78' AND
      status = 'Active'GROUP BY proof_type

GROUP BY我在SO上看到的绝大多数MySQL 问题已关闭严格模式,因此查询正在运行,但结果不正确。在您的情况下,查询将根本不运行,迫使您考虑您真正想要做的事情。

注意:ANSI SQL扩展了允许选择的内容GROUP BY,还包括功能上依赖于所选列的列。功能依赖性的一个示例是按表中的主键列进行分组。由于保证主键对于每个记录都是唯一的,因此也将确定任何其他列的值。MySQL是允许这样做的数据库之一(SQL Server和Oracle不支持AFAIK)。


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 3197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信