非按列分组 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两台机器的版本:
- 不工作 - 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
被default
设置为ONLY_FULL_GROUP_BY
。
最好始终在查询中通过聚合来练习完整的组。否则,虽然 MySQL 接受并检索基于 SQL_MODE
集的结果,但它们可能不正确。
您可能想像下面这样更改您的分组依据:
GROUP BY
bdm.brand_id,
bdm.brand_name,
fse.seller_code,
bdm.feed_source
我有两台机器,我正在尝试 运行 在这两台机器中执行下面提到的查询。
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
被default
设置为ONLY_FULL_GROUP_BY
。
最好始终在查询中通过聚合来练习完整的组。否则,虽然 MySQL 接受并检索基于 SQL_MODE
集的结果,但它们可能不正确。
您可能想像下面这样更改您的分组依据:
GROUP BY
bdm.brand_id,
bdm.brand_name,
fse.seller_code,
bdm.feed_source