运行查询时
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;
一些注释。首先,使用不带 order by
的 limit
将为您提供任意 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/