运行查询时
select BookID FROM Books_Collection WHERE CollectionID=22 AND BookID IN (SELECT BookID FROM Books LIMIT 0,10);
我得到错误:
ERROR 1235 (42000): This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
如何在IN子句中使用限制?如果不能,请告诉我如何在没有IN子句的情况下执行此操作。
最佳答案
尝试使用join
代替:
SELECT bc.BookID
FROM Books_Collection bc JOIN
(SELECT DISTINCT BookID
FROM Books
LIMIT 0,10
) b
ON bc.BookId = b.BookId
WHERE bc.CollectionID = 22;
一些注意事项。首先,使用不带
limit
的order by
将给您任意10行。他们可以从一种处决变为另一种处决。您应该使用显式的order by
。其次,假设
BookId
是有效的外键,那么您可能不需要加入Books
。您可能只想要:SELECT DISTINCT bc.BookID
FROM Books_Collection bc
WHERE bc.CollectionID = 22
LIMIT 0, 10;
关于mysql - 如何在IN子句sql中使用限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23880500/