mysql联表时由于主键id重复导致sum不准确
时间: 2023-05-21 17:00:52 浏览: 71
这个问题可能是由于联表时出现了重复的主键id,导致sum不准确。可以尝试使用DISTINCT关键字去重,或者使用GROUP BY语句来分组计算。另外,也可以检查一下数据表的设计是否合理,是否存在冗余数据等问题。
相关问题
mysql求和去掉重复id的数据
可以使用如下的SQL语句来实现:
```
SELECT SUM(column_name) FROM (SELECT DISTINCT id, column_name FROM table_name) AS temp_table;
```
其中,`column_name`是要进行求和的列名,`table_name`是数据表名,`id`是数据表中的主键或唯一键。
这个SQL语句的执行过程是,先通过`SELECT DISTINCT`语句去掉重复的`id`,得到一个临时表`temp_table`,然后在这个临时表上进行`SUM`操作,得到去重后的求和结果。
mysql多表联合查询
MySQL多表联合查询是指通过连接多个表的数据来获取特定查询结果的一种查询方式。多表联合查询的语法如下:
```
SELECT column_name(s) FROM table1
JOIN table2 ON table1.column_name=table2.column_name
WHERE condition;
```
其中,table1和table2是要连接的表名,JOIN关键字用于连接两个表,ON关键字用于指定连接条件。column_name(s)是要查询的列名,可以是多个列名,用逗号分隔。WHERE条件用于过滤查询结果。
举个例子,假设我们有两个表students和scores,students表包含学生的基本信息,scores表包含学生的成绩信息。我们可以通过以下查询语句获取学生的姓名和总成绩:
```
SELECT students.name, SUM(scores.score) as total_score FROM students
JOIN scores ON students.id=scores.student_id
GROUP BY students.id;
```
其中,students表的主键是id,scores表的外键是student_id。JOIN关键字用于连接两个表,ON关键字指定连接条件。GROUP BY关键字用于按学生id分组,SUM函数用于计算每个学生的总成绩。查询结果将包含学生的姓名和总成绩。
阅读全文