How to select a limited amount of rows for each foreign key?

前端 未结 4 836
忘掉有多难
忘掉有多难 2021-01-06 10:19

I have this table:

id
feed_id
...

Let\'s say that I have 500 rows and I want to select 3 entries for each feed_id? And 50 as total limit.

4条回答
  •  感动是毒
    2021-01-06 10:28

    Use:

    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
    

    What's not clear is the details of what you want returned - all the rows in your table, or just the feedid.

提交回复
热议问题