2017-09-03 93 views
-3

我真的需要你的帮助,因为我在SQL中相当有限。MYSQL/SQL:我如何做2查询1

我有一张桌子“节拍”,他列出了我所有的节拍音乐和其他列出用户节拍率的“评级”。

BEATS表:https://imgur.com/90m1utI 等级表时:https://imgur.com/kuGef5E

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

非常感谢,

+0

分享有问题的表格模式@ Brayan233。图像不清楚。 –

+0

以相同的方式和格式共享表格的数据结构。这个问题应该清楚地提供信息 – madtyn

回答

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; 
+0

非常感谢您的帮助! – Brayan233

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' 
+0

它不能帮助我,因为我需要从节拍表中选择。 举例:我有3个用户评价节拍(user1,2,3);所以在费率表中我有3条记录(user_id:1,beat_id:57,rate:3),(user_id:2,beat_id:57,rate:6),(user_id:3,beat_id:57,rate:3) ,那么现在如何显示我的节拍中选择节拍57(速率12)的总速率? – Brayan233