mysql - 内部连接和 sum()

标签 mysql sql sum inner-join

我有两张 table trips_data 作为 tripid, userid, species (int),k​​illcount 具有 species_id 和 speceies(字符串)的 masterspecies

我正在尝试检索旅行中看到的所有物种的列表 我希望得到

sum(killcount) : tripid :species (string):species (int)
57                 300    rabbit            1
2                  300    foxes             2 
1                  300    squirels          8

等等
我有以下查询,它返回我想要的所有内容,除了 sum(killcount) 大约是 8000,而它应该是 57。

任何帮助将不胜感激

SELECT sum(trips_data.killcount), 
  trips_data.species,trips_data.spceces,
  masterspecies.species 
from trips_data 
join masterspecies 
WHERE tripid=$tripid 
   AND userid=1 
   AND NOT killcount=0

最佳答案

你需要告诉数据库如何加入;否则你会得到所有可能的组合。看起来 trips_data.species 应该匹配 master_species.species_id;是对的吗?您还需要按物种对结果进行分组。

SELECT sum(trips_data.killcount), trips_data.species, masterspecies.species 
from trips_data join masterspecies
WHERE tripid=$tripid AND userid=1 and trips_data.species=masterspecies.species_id
group by trips_data.species, masterspecies.species;

关于mysql - 内部连接和 sum(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746893/

相关文章:

php - 不分组就不能单独选择行

mysql - 在表中插入多列时出现查询错误

php - 在插入 ERROR 之前检查记录是否已经存在

php - 在 PHP 中组合 sql 查询

sql - 函数返回单个列中的数据,而不是 3 个单独的列

python - CumSum 数据帧行,如果值在另一个数据帧上

mysql - 优化 MySQL 中依赖子查询的索引

sql - 如何在SQL中实现这种双重联接?

mysql - 选择总和忽略分组依据

mysql - 将列与条件相加并显示在行中