我有这张桌子:

id
feed_id
...

假设我有500行,我想为每个提要id选择3个条目?总限额为50。
如何编写这个sql?

最佳答案

用途:

SELECT x.feedid
  FROM (SELECT t.feedid,
               CASE WHEN @feed != t.feedid THEN @rownum := 1 ELSE @rownum := @rownum + 1 END AS rank,
               @feed := t.feedid
          FROM TABLE t
          JOIN (SELECT @rownum := NULL, @feed := 0) r
      ORDER BY t.feedid) x
 WHERE x.rank <= 3
 ORDER BY x.feedid
 LIMIT 50

不清楚的是您想要返回的内容的细节-表中的所有行,或者仅仅是feedid。

关于sql - 如何为每个外键选择有限数量的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2590169/

10-10 10:07