非按列分组 select 在一台机器上工作而不在另一台机器上工作

Non Group by column in select working in one machine and not in another

我有两台机器,我正在尝试 运行 在这两台机器中执行下面提到的查询。

SELECT 
    bdm.brand_id AS brandId,
    bdm.brand_name AS brandName,
    fse.seller_code AS dummySeller,
    bdm.feed_source AS feedSource
FROM
    `brand_distributor_mapping` bdm
        JOIN
    `feed_source` fse ON bdm.feed_source = fse.name
GROUP BY bdm.brand_id ,bdm.feed_source;

它在一台机器上工作,在另一台机器上给出错误代码 1055。

Mysql两台机器的版本:

  1. 不工作 - mysql Ver 14.14 Distrib 5.6.19,用于 Linux (x86_64) 使用 EditLine 包装器。
  2. 工作 - mysql Ver 14.14 Distrib 5.5.53,用于 debian-linux-gnu (x86_64) 使用 readline 6.3

一定是因为SQL_MODEdefault设置为ONLY_FULL_GROUP_BY

最好始终在查询中通过聚合来练习完整的组。否则,虽然 MySQL 接受并检索基于 SQL_MODE 集的结果,但它们可能不正确。

您可能想像下面这样更改您的分组依据:

GROUP BY
    bdm.brand_id,
    bdm.brand_name,
    fse.seller_code,
    bdm.feed_source

参考:MySQL Documentation on ONLY_FULL_GROUP_BY