2017-09-03 82 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