由於您按site_id
分組,因此只會返回1 deal_woot
行。嘗試訂購MAX()
,這將返回每個site_id
的最高id
。
SELECT
deal_woot.*,
site.woot_off,
site.name AS site_name
FROM deal_woot
INNER JOIN site ON site.id = site_id
WHERE site_id IN (2, 3, 4, 5, 6)
GROUP BY site_id
ORDER BY MAX(deal_woot.id) DESC
LIMIT 5
注:既然是UB什麼deal_woot
行實際上返回,試圖吐涎你查詢:
SELECT
deal_woot.*,
site.woot_off,
site.name AS site_name
FROM site JOIN (
SELECT site_id, MAX(deal_woot.id) MaxID
FROM deal_woot
WHERE site_id IN (2, 3, 4, 5, 6)
GROUP BY site_id
) sg ON site.id = sg.site_id
JOIN deal_woot
ON site.id = deal_woot.site_id AND deal_woot.id = sg.MaxID
ORDER BY sg.MaxID DESC
LIMIT 5
你能舉一個你想要完成的例子嗎?你不能在你選擇的字段中進行分組,也不能在像sum()這樣的集合函數中使用這些字段。 – 2011-02-23 06:04:58