2014-03-03 80 views
0

我需要在MySQL中进行SQL查询,查询应该从两个表中选择存储和项目,存储有一个或多个项目,查询应该从这两个表格中按照从创建日期表和项目表更新日期,与项目的最大数量是每家商店的10,是指不超过10个项目,如果商店有超过10个项目每个店的,我想这样的查询:限制MySQL中的子查询

select * 
from store s, item i 
where s.store_id = i.store_id 
    and i.item_id in (select i1.item_id 
        from item i1 
        where i1.store_id = s.store_id 
        limit 10) 
group by s.store_id, i.item_id 
order by s.created_at, i.updated_at 

但我得到了一个错误

这个版本的MySQL还不支持子查询限制

有没有办法做到这一点?

+1

看看这个以前的答案HTTP连接它们: //stackoverflow.com/questions/17892762/mysql-this-version-of-mysql-doesnt-yet-support-limit-in-all-any-some-subqu – twoleggedhorse

回答

0

您可能需要升级您的MySQL版本。

如果不知道这是否会工作,但值得试一试

select s.*,i.* 
from store s 
JOIN item i on s.store_id=i.store_id 
JOIN (select i1.item_id from item i1 where i1.store_id = s.store_id limit 10) 
    itemids ON i.item_id=itemids.item_id 
group by s.store_id, i.item_id 
order by s.created_at, i.updated_at 

Im做的再选择一个连接,而不是和i.item_id

+0

感谢您的回复,但没有工作 –

+0

然后你将不得不升级你的MySQL版本我认为... –