0

我有两台机器,我试图在这两台机器上运行下面提到的查询。

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,适用于使用 EditLine 包装器的 Linux (x86_64)。
  2. 工作 - mysql Ver 14.14 Distrib 5.5.53,适用于使用 readline 6.3 的 debian-linux-gnu (x86_64)
4

1 回答 1

2

它必须是由于SQL_MODE设置为ONLY_FULL_GROUP_BYby default

更好的是,您总是在查询中通过聚合来练习一个完整的组。否则尽管 MySQL 接受并根据SQL_MODE集合检索结果,但它们可能不正确。

您可能希望更改您的 group by 子句,如下所示:

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

参考:关于 MySQL 的文档ONLY_FULL_GROUP_BY

于 2017-01-27T07:19:35.777 回答