【发布时间】:2015-08-01 18:32:22
【问题描述】:
我有以下表格:
类别
id(int)
1000
1001
书籍
id(int) category(int) rating(float)
3000 1000 5.0
3001 1000 4.8
3002 1000 3.0
3003 1000 4.9
3004 1001 4.9
3005 1001 3.0
我想做的是从每个类别中选出 3 部评分最高的书籍。在环顾四周并按照LIMITing an SQL JOIN 给出的答案后,我尝试了这个查询。
SELECT * FROM book, category WHERE book.category=category.id AND book.id IN (SELECT book.id FROM book ORDER BY rating LIMIT 3)
但它给出了以下错误
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
解决方案说至少需要 MySQL 5.1,我正在运行 libmysql - 5.1.73。可能有什么问题?
【问题讨论】:
-
我刚刚提到它是因为我从 PHP 脚本运行此查询。我已经删除了,抱歉。 :)
-
查看此主题:stackoverflow.com/questions/3333665/rank-function-in-mysql。您应该按类别对将它们进行分区的行进行排名,并选择排名
-
我需要在 2 个数据库上运行相同的查询,其中一个是在使用 SQLite 的 Android 中。我可以在那里做吗?
标签: mysql