2015-04-07 50 views
0

我有兩個表格,第一個是Videos表格,它具有每個視頻的詳細信息。MySQL排名產品下載

CREATE TABLE IF NOT EXISTS `Videos` (

`VideoID` varchar(23) NOT NULL AUTO_INCREMENT, 

`VideoTitle` varchar(50) NOT NULL, 

); 

第二記錄每個視頻

CREATE TABLE IF NOT EXISTS `Downloads` (
`downloadID` int(11) NOT NULL AUTO_INCREMENT, 
`userID` int(11) NOT NULL, 
`VideoID` varchar(23) NOT NULL, 

); 

在下載表中的每個記錄等同於單次下載的下載。

我怎麼你如何使用一個VARCHAR領域AUTO_INCREMENT編譯十大最下載的項目

+0

按順序下載。至於前十名和排名,這個問題在此之前已經被問到過......尋找它。 – Barett

+0

可能重複的[MySQL select語句 - 如何計算當前排名](http://stackoverflow.com/questions/27394516/mysql-select-statement-how-to-calculate-the-current-ranking) – Barett

回答

3

的名單?我錯過了一些MySQL更新?

不,我還沒有,MySQL仍然不允許。

使用足夠大的整數數據類型爲AUTO_INCREMENT列,以保存您需要的最大序列值。

Reference

一旦模式是固定的,你可以做

SELECT VideoTitle,count(downloadID) as d FROM Downloads 
INNER JOIN Videos ON Videos.VideoId=Downloads.VideoID 
GROUP BY Downloads.VideoID 
ORDER BY d DESC 
LIMIT 10 

PS:如果你已經提供了一些樣本數據我會很高興地把一個小提琴,慵懶的感覺沒有它:)

+1

你是一個傳奇!完美的作品。非常感謝 – user3103155