小编典典

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

sql

我有这张table:

id
feed_id
...

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

怎么写这个SQL?


阅读 166

收藏
2021-03-23

共1个答案

小编典典

使用:

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。

2021-03-23