我有两台机器,我正在尝试在两台机器上运行下面提到的查询。
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 Distrib 5.6.19,适用于 Linux (x86_64),使用 EditLine 包装器。
- 工作 - mysql Ver 14.14 Distrib 5.5.53,适用于 debian-linux-gnu (x86_64),使用 readline 6.3
最佳答案
这一定是由于SQL_MODE
默认设置为ONLY_FULL_GROUP_BY
所致。
最好始终通过在查询中聚合来练习完整的组。否则,尽管 MySQL 根据 SQL_MODE
集接受并检索结果,但它们可能不正确。
您可能想要更改您的 group by 子句,如下所示:
GROUP BY
bdm.brand_id,
bdm.brand_name,
fse.seller_code,
bdm.feed_source
关于mysql - 选择在一台机器上工作而不是在另一台机器上工作时非按列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41888583/