我正在尝试在测试环境中测试一个查询,如下所示
询问 : -
SELECT a.aggreatorid AS aggreatorid, '' AS txndesc, DATE_FORMAT(DATE(b.txndate),'%d/%m/%Y') AS txndate,
SUM(txncredit) AS txncredit, SUM(txndebit) AS txndebit
FROM walletmast a INNER JOIN wallettransaction b ON a.walletid=b.walletid
AND txndate BETWEEN CURDATE() - INTERVAL 3 DAY AND CURDATE()
GROUP BY a.aggreatorid, DATE(b.txndate)
ORDER BY txndate DESC
查询抛出以下
错误 : -
SQL Error (1055): 'digitalpurse.b.txnDate' isn't in GROUP BY
该查询适用于我的本地环境,但不适用于测试环境经过大量搜索后我发现测试环境有sql_modes无法更改以用于应用程序流和安全目的
SQL模式: -
@@sql_mode |
+------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,
STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,
NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION |
有没有办法在不改变 sql_mode 的情况下运行这个查询? 如果需要任何其他信息,请告诉我。提前谢谢你:D