使用join语句从多个表中获取SUM值有问题。错误是:
这与sql_mode=only_full_group_by不兼容。
不改变sql_mode就能得到和吗?如果可能的话,如何做出SQL语句?
fuel**:** 表
vehicle_id | liter
-----------+-----------
2 | 43.5
4 | 78.3
8 | 20.5usage**:** 表
date_usage | vehicle_id
-----------+-----------
2019-10-01 | 8
2019-10-15 | 2
2019-10-20 | 8
2019-10-20 | 4
2019-11-02 | 8SQL语句如下:
SELECT fuel.vehicle_id, SUM(fuel.liter), usage.date_usage
FROM fuel
LEFT JOIN usage ON fuel.vehicle_id = usage.vehicle_id
WHERE fuel.vehicle_id='8'
AND usage.date_usage >='2019-10-01' AND usage.date_usage <='2019-10-31'
GROUP BY fuel.vehicle_id发布于 2019-12-19 14:22:49
解决这个问题有两种可能性:
因此,您的查询可以如下所示(在usage.date_usage列上使用usage.date_usage):
SELECT fuel.vehicle_id, SUM(fuel.liter), MAX(`usage`.date_usage)
FROM fuel LEFT JOIN `usage` ON fuel.vehicle_id = `usage`.vehicle_id
WHERE fuel.vehicle_id = 8
AND `usage`.date_usage BETWEEN '2019-10-01' AND '2019-10-31'
GROUP BY fuel.vehicle_id注意:在MySQL中要小心地使用像usage这样的单词作为标识符(例如表名和列名)。有一些关键词与保留词,你应该避免或引用背。
https://stackoverflow.com/questions/59403334
复制相似问题