2013-10-17 68 views
1

我试图将MS Access查询转换为MySQL,并且问题是将MS Access top转换为MySQL limit以获得相同结果。当我将查询更改为limit时,出现此版本的MySQL在子查询中不支持limit的错误。在子查询中将MS Access“TOP”转换为MySQL“LIMIT”

这是MS Access查询:

SELECT a.FK_CONTRIBUTOR_ID 
FROM tPUBLISHERS 
INNER JOIN (tCONTRIBUTORS AS b 
    INNER JOIN tCLIPS AS a ON b.CONTRIBUTOR_ID = a.FK_CONTRIBUTOR_ID) 
    ON tPUBLISHERS.PUBLISHER_ID = b.FK_PUBLISHER_ID 
WHERE ((a.CLIP_ID) In 
    (select top 5 CLIP_ID 
    from tCLIPS 
    where FK_CONTRIBUTOR_ID = a.FK_CONTRIBUTOR_ID 
     AND SUSPEND = a.SUSPEND)) 
    AND ((a.FK_CONTRIBUTOR_ID) In (1922,2034,2099)) 
+0

“当我将查询更改为”限制“时,出现此版本的MySQL在子查询中不支持”限制“的错误。” - 你使用的是什么版本的MySQL? – Mureinik

+0

使用最新版本Mureinik,它是MySQL 5.6.14 –

+0

我没有访问这样的构建,但我尝试了[SqlFiddle]提供的MySQL 5.6.6和5.5.32(http://sqlfiddle.com/# !9/85c14/3/0),并且我在子查询中的'limit'子句没有任何问题。你能发布完整的MySQL查询和错误吗? – Mureinik

回答

0

在此前回答: MySQL Subquery LIMIT

基本不变的子查询到加入

谷歌更多与 “关于子查询的MySQL限制”

+0

已从此处解答:http://grokbase.com/t/mysql/mysql/0826rjswmn/workaround-limit-in-subquery-not-allowed –