我有以下表格:
类别
id(int)
1000
1001
Run Code Online (Sandbox Code Playgroud)
书
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
Run Code Online (Sandbox Code Playgroud)
我想要做的是从每个类别中选出 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)
Run Code Online (Sandbox Code Playgroud)
但它给出了以下错误
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Run Code Online (Sandbox Code Playgroud)
解决方案说至少需要MySQL 5.1,我正在运行libmysql - 5.1.73。可能有什么问题?
MySQL 不支持LIMIT子查询中的某些子查询运算符:
'LIMIT & IN/ALL/ANY/SOME subquery'
Run Code Online (Sandbox Code Playgroud)
例如
mysql> SELECT * FROM t1
-> WHERE s1 IN (SELECT s2 FROM t2 ORDER BY s1 LIMIT 1);
ERROR 1235 (42000): This version of MySQL doesn't yet support
'LIMIT & IN/ALL/ANY/SOME subquery'
Run Code Online (Sandbox Code Playgroud)
读取子查询限制
| 归档时间: |
|
| 查看次数: |
4334 次 |
| 最近记录: |