我需要在MySQL中进行一个SQL查询,查询应该从两个表存储区和项中选择,存储区有一个或多个项,查询应该从这两个表中从存储表中按创建日期排序,从项表中选择更新日期,最多每个存储区中的项目数为10项,意味着如果存储区有超过10个项,则每个存储区不超过10个项,我想执行以下查询:
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还不支持子查询中的限制
有什么办法吗?
发布于 2014-03-03 10:55:07
您可能需要升级您的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我在子选择上做一个连接,然后在i.item_id上加入它们
https://stackoverflow.com/questions/22144751
复制相似问题