MySQL排名产品下载

时间:2015-04-07 17:35:27

标签: php 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,

);

“下载”表中的每条记录等同于一次下载。

如何编制十大下载项目的列表

1 个答案:

答案 0 :(得分:3)

您如何在VARCHAR使用AUTO_INCREMENT字段?我错过了一些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
P.S:如果你提供了一些样本数据,我很乐意提出一个小提琴,没​​有它就会感到懒惰:)