MYSQL / SQL:如何将2个查询转换为1

时间:2017-09-03 16:29:11

标签: mysql sql

我真的需要你的帮助,因为我的SQL非常有限。

我有一张桌子“beats”,他列出了我所有的节拍音乐和另一张表“评级”,列出了用户节拍的速度。

BEATS TABLES:https://imgur.com/90m1utI 评分表:https://imgur.com/kuGef5E

我需要在节拍选择中获得节拍的总费率... 所以我有一个节拍查询,我有一个评级查询来获得总的比率(SELECT sum(rate)as total_rate FROM rating WHERE beat_id = x)但是如何组合它们?

非常感谢,

2 个答案:

答案 0 :(得分:0)

这将有助于SQL。

SELECT sum(r.rate) as total_rate 
FROM rating r 
INNER JOIN Beats B ON B.Rate = r.Id
WHERE B.beat_id ='x'

答案 1 :(得分:0)

选择您的节拍并在子查询中获得评分:

select
  b.*,
  (select sum(rate) from rating r where beat_id = b.id) as total_rate
from beats b;

这是最简单的解决方案。你可以通过加入来获得相同的东西:

select
  b.*,
  r.total_rate
from beats b
left join
(
  select beat_id, sum(rate) as total_rate
  from rating 
  group by beat_id
) r on r.beat_id  = b.id;