我有两个表,第一个是视频表,其中包含每个视频的详细信息。
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,
);
“下载”表中的每条记录等同于一次下载。
如何编制十大下载项目的列表
答案 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:如果你提供了一些样本数据,我很乐意提出一个小提琴,没有它就会感到懒惰:)