我有两台机器,我试图在两台机器上运行下面提到的查询。
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版本:
无法正常使用-适用于Linux(x86_64)的mysql Ver 14.14 Distrib 5.6.19,使用EditLine包装器。
工作-mysql Ver 14.14 Distrib 5.5.53,用于使用readline 6.3的debian-linux-gnu(x86_64)
最佳答案
这必须归因于SQL_MODE
被ONLY_FULL_GROUP_BY
设置为default
。
更好的是,您总是在查询中通过汇总实践完整的分组。否则,尽管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
关于mysql - 在某台机器上而不是另一台机器上进行选择的非按列分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41888583/