2010-01-22 104 views
0

我是MYSQL的初學者請幫幫我。MySQL子查詢需要幫助

我有一個兩個表的圖像和率。

我想出來是imgID率。

image id as p.k in images table。

圖像是foriegn鍵率表中。

率表的樣本數據是

ImgID Rating 
1  5 
1  7 
1  8 
2  8 
3  2 
4  3 
1  4 

圖像表的樣本數據是

ImgID Comment rate 
1  good 7 
2  bad  8 
3  ok  8 
4  fine 8 
5  bad  7 

出把我需要的是

ImgId AVG(速率從比率表相比IMG ID時)

例如

ImgIf rate 
----------- 
1  6 
2  8 
3  2 
4  3 

我需要這個輸出的子查詢。

在此先感謝

+0

歡迎StackOverflow的維克拉姆 - 預格式化文本如代碼或查詢輸出應該有4個空格縮進,或者使用編輯框上方的代碼格式化按鈕。我很快在你的文章中解決了這個問題。 – 2010-01-22 10:04:55

回答

4

你不需要子查詢,你需要一個聚合。

SELECT ImgID, 
     AVG(Rate) Rate 
FROM RateTable 
GROUP BY ImgID 

如果要包括所有圖像,無論是否有評價:

SELECT i.ImgID, 
     AVG(r.Rate) Rate 
FROM ImageTable i 
     LEFT JOIN 
       RateTable r 
       ON i.ImgID = r.ImgID 
GROUP BY i.ImgID 
+0

但我想從圖像表ImgId。因爲有些ImgId不在費率表中。 感謝您給予回覆。 – 2010-01-22 10:07:25

+0

是的,我編輯了我的答案,以防這是你想要的。 – 2010-01-22 10:07:56

+0

感謝它的工作 – 2010-01-22 10:14:01