我需要在MySQL中进行SQL查询,查询应该从两个表中选择store和item,store有一个或多个item,查询应该从这两个表中选择按创建日期排序的商店表和更新日期来自项目表,每个商店的最大项目数为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尚不支持子查询中的限制
有没有办法做到这一点?
答案 0 :(得分: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
我在subselect上进行连接,然后在i.item_id上加入它们