Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wybrać ograniczoną liczbę wierszy dla każdego klucza obcego?

Użyj:

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

Niejasne są szczegóły tego, co chcesz zwrócić — wszystkie wiersze w tabeli lub tylko identyfikator kanału.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć dwa zapytania SQL z różnymi klauzulami ORDER BY?

  2. Jak bezpiecznie przechowywać hasło użytkownika i sól w MySQL?

  3. Uruchamianie wielu instrukcji SQL z Groovy

  4. Dopasowywanie rekordów z dwóch tabel

  5. Które zapytanie SQL jest lepsze, MATCH AGAINST czy LIKE?