mysql中 left join sum时翻倍
时间: 2023-12-02 15:39:54 浏览: 174
在进行MySQL中的left join sum操作时,如果left join的表中存在多条符合条件的记录,那么在进行sum操作时会将这些记录都计算在内,导致结果翻倍。解决方案是先对left join的表进行聚合操作,将多条记录合并为一条记录,再进行sum操作。例如可以使用GROUP_CONCAT函数将多条记录合并为一个字符串,然后再使用字符串函数进行拆分和计算。
相关问题
mysql中left join sum的使用
在MySQL中,可以使用LEFT JOIN和SUM函数结合使用来计算左表中某个字段的总和。例如,可以使用以下语句来计算左表t1中所有未购买的游戏数量:
```
SELECT SUM(IF(t2.id_toy IS NULL AND bought = -1, 1, 0)) AS games_not_bought
FROM t1
LEFT JOIN t2 ON t1.id = t2.id_toy;
```
这个查询首先使用LEFT JOIN将t1和t2表连接起来,然后使用SUM函数计算符合条件的记录数。在这个例子中,IF函数用于判断游戏是否未被购买,如果未被购买,则返回1,否则返回0。最后,SUM函数将所有返回的值相加,得到未购买的游戏数量。
mysql left join sum
MySQL中的LEFT JOIN和SUM函数可以一起使用来汇总数据。LEFT JOIN是一种连接类型,它返回左表中的所有行以及右表中匹配左表中行的行。SUM函数用于计算指定列的总和。因此,使用LEFT JOIN和SUM函数可以将两个或多个表中的数据组合在一起,并计算指定列的总和。
例如,上面提到的引用和引用中的代码都使用了LEFT JOIN和SUM函数来汇总车辆的所有费用。其中,LEFT JOIN用于将base表与baoxian、oil、jiaoqiang表连接起来,而SUM函数则用于计算baoxian、oil、jiaoqiang表中的pay_money、money、jq_money列的总和。
阅读全文