当我们使用mysql的join功能从多张表中取出数据并使用sum分别对取出的数据求和时
会发现sum出来的值是不对的,往往是正确值的整数倍
为什么会出现这样的情况呢
复现
假设有两张表:user_buy 和user_sell,分别记录了用户在某天的购买和出售金额,
结构如下:
CREATE TABLE `user_buy` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL COMMENT '用户id',
`amount` int(10) unsigned default '0' COMMENT '数量',
`init_time` date not null comment '日期',
PRIMARY KEY (`id`),
KEY `uid` (`uid`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户购买统计';
CREATE TABLE `user_sell` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL COMMENT '用户id',
`amount` int(10) unsi