SELECT `a`.`tid`, `a`.`title`, `a`.`cid`, `a`.`updatetime`, `b`.`uid`, `b`.`username` FROM (`news` a) LEFT JOIN `users` b ON `b`.`uid` = `a`.`uid` WHERE `cid` IN ('10', '9', '8', '6', '4', '11', '7', '5') ORDER BY `a`.`updatetime` desc LIMIT 8如何每個分類只調用一條最新記錄,如果使用group by的話,可以實現,只是無法按最新的排序了。
2 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
假設cid是你說的分類,那么應該可以這樣:
SELECT * from ( SELECT `a`.`tid`, `a`.`title`, `a`.`cid`, `a`.`updatetime`, `b`.`uid`, `b`.`username` FROM (`news` a) LEFT JOIN `users` b ON `b`.`uid` = `a`.`uid` WHERE `cid` IN ('10', '9', '8', '6', '4', '11', '7', '5') ORDER BY a.cid, `a`.`updatetime` DESC ) alias GROUP BY a.cid

暮色呼如
TA貢獻1853條經驗 獲得超9個贊
SELECT `a`.`tid`, `a`.`title`, `a`.`cid`, `a`.`updatetime` FROM `news` a WHERE `a`.`update_time`=(SELECT MAX(`updatetime`) FROM `news` tmp_news WHERE tmp_news.`tid`=a.`tid`);
添加回答
舉報
0/150
提交
取消