首页 文章

非分组选择在一台机器中工作而不在另一台机器中工作

提问于
浏览
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版本:

  • 不工作 - mysql Ver 14.14使用EditLine包装器分发5.6.19,用于Linux(x86_64) .

  • Working - mysql Ver 14.14使用readline 6.3分发5.5.53,用于debian-linux-gnu(x86_64)

1 回答

  • 1

    它必须是 SQL_MODEdefault 设置为 ONLY_FULL_GROUP_BY .

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

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

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

    参考:MySQL Documentation on ONLY_FULL_GROUP_BY

相关问题