Este erro ocorre principalmente porque os campos no conteúdo do select não aparecem agrupados por
Aqui estão duas soluções:
O primeiro:
Adicione uma linha ao seu arquivo MySQL my.ini
[mysqld]
sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
O segundo tipo:
eu estava usando
SELECT
*
FROM
biz_table bt
LEFT JOIN biz_table_ver btv ON bt.table_id = btv.table_id
WHERE
bt.system_up = 1
GROUP BY
bt.table_name
Essa forma de escrever dá um erro
A expressão nº 1 da lista SELECT não está na cláusula GROUP BY e contém a coluna não agregada 'zx_ds.biz_table_ver.ver_id' que não depende funcionalmente das colunas na cláusula GROUP BY; isso é incompatível com sql_mode=only_full_group_by\n### O erro pode existir na URL [jar:file:/opt/zxs/ds/ds-dict.jar!/BOOT-INF/classes!/mapper/system/BizTableMapper. xml]\n### O erro pode envolver com.gyjn.dict.data.mapper.BizTableMapper.selectBizTableList-Inline\n### O erro ocorreu ao definir os parâmetros\n### SQL: select * FROM biz_table bt LEFT JOIN ( SELECT * FROM biz_table_ver GROUP BY table_id ) btv ON bt.table_id = btv.table_id WHERE bt.system_up=1\n### Causa: java.sql.SQLSyntaxErrorException: Expressão #1 da lista SELECT não está na cláusula GROUP BY e contém a coluna não agregada 'zx_ds. biz_table_ver.ver_id' que não é funcionalmente dependente de colunas na cláusula GROUP BY; isso é incompatível com sql_mode=only_full_group_by\n; gramática SQL ruim []; a exceção aninhada é java.sql.SQLSyntaxErrorException: a expressão nº 1 da lista SELECT não está na cláusula GROUP BY e contém a coluna não agregada 'zx_ds.biz_table_ver.ver_id' que não depende funcionalmente das colunas na cláusula GROUP BY; isso é incompatível com sql_mode=only_full_group_by" ver_id' que não é funcionalmente dependente de colunas na cláusula GROUP BY; isso é incompatível com sql_mode=only_full_group_by" ver_id' que não é funcionalmente dependente de colunas na cláusula GROUP BY; isso é incompatível com sql_mode=only_full_group_by"
mais tarde mudou para
SELECT
*
FROM
biz_table_ver v
INNER JOIN biz_table t
INNER JOIN ( SELECT max( ver_id ) ver_id, table_id FROM biz_table_ver GROUP BY table_id ) maxv ON v.ver_id = maxv.ver_id
AND t.table_id = maxv.table_id
é isso