如何为每个外键选择有限数量的行?

Key*_*ana 5 mysql sql

我有这张桌子:

id
feed_id
...
Run Code Online (Sandbox Code Playgroud)

假设我有 500 行,我想为每个 feed_id 选择 3 个条目?和 50 作为总限制。

这个SQL怎么写?

OMG*_*ies 5

使用:

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
Run Code Online (Sandbox Code Playgroud)

不清楚的是您想要返回的详细信息 - 表中的所有行,或只是 feedid。