2014-03-03 106 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版本我認爲... –