Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL两个查询的计数之和_Mysql_Count_Sum - Fatal编程技术网

MySQL两个查询的计数之和

MySQL两个查询的计数之和,mysql,count,sum,Mysql,Count,Sum,我(非常)不熟悉MySQL。请原谅我的无知 我正在制作一个曲棍球统计数据库,我需要把所有助攻和所有进球加在一起,得到“总分”。我已经计算出了两个查询,但我无法计算出如何将这两个查询相加。 以下是查询: select player_id, count(*) from(select * from 1st_assists union select * from 2nd_assists) as tem join players on tem.fk_player_id=players.player_id

我(非常)不熟悉MySQL。请原谅我的无知

我正在制作一个曲棍球统计数据库,我需要把所有助攻和所有进球加在一起,得到“总分”。我已经计算出了两个查询,但我无法计算出如何将这两个查询相加。 以下是查询:

select player_id, count(*) 
from(select * from 1st_assists
union
select * from 2nd_assists) as tem
join players on tem.fk_player_id=players.player_id
group by fk_player_id
order by count(*) desc

select player_id, count(*)
from goals_for
join shots_for on goals_for.fk_shot_for_id=shots_for.shot_for_id
join players on shots_for.fk_player_id=players.player_id
group by player_id
order by count(*) desc;
如何将这两个查询合并为一个查询并获得两个计数的总和

下面是每个查询的结果

Total Assists
player_id   count(*)
79      24
55      22
45      17
90      16
40      15
65      15
37      13
1       13
20      11
84      11
64      10
27      9
93      7
8       5
24      3
57      1

Goals
player_id   count(*)
90      38
37      28
40      19
55      13
45      11
1       8
24      8
20      8
84      8
27      6
8       5
79      4
65      4
93      1
64      1

这是未经测试的,但请您尝试一下:

select p.player_first_name, p.player_last_name, (count1+count2) as total_count
from
(select player_id, count(*) count1
from(select * from 1st_assists
union
select * from 2nd_assists) as tem
join players on tem.fk_player_id=players.player_id
group by fk_player_id
order by count(*) desc) q1
left join
(select player_id, count(*) count2
from goals_for
join shots_for on goals_for.fk_shot_for_id=shots_for.shot_for_id
join players on shots_for.fk_player_id=players.player_id
group by player_id) q2
ON q1.player_id=q2.player_id
left join player p ON q1.player_id=p.player_id
order by (count1+count2) desc;

你想得到每个玩家的总数吗?是的,没错。每个玩家的总数。是否所有玩家都出现在您的两个查询中?这看起来很有效!!如何按总分对desc进行排序?我尝试了几件事,但都没有成功……没关系,我犯了个愚蠢的语法错误。一切都好。如果我能知道你是怎么做到的。我可能要花点时间盯着它看……非常感谢,你只用了10分钟就回答了。我应该在12小时前问这个问题!!那么,查询是否一切正常?我只在player_id列中加入了这两个查询,然后添加了每个子查询提供的计数。请参阅编辑,了解按总计数降序排列的顺序。是。知道了。再次感谢!!