sql >> Databáze >  >> RDS >> Mysql

mysql vybrat vnitřní spojení s limitem

Můžete použít dotaz na hodnocení mysql nemá funkce okna pro tento typ výsledků, abyste získali n záznamů na skupinu, nebudu navrhovat group_concat řešení, protože jako articles Termíny říkají, že může být dostatek dat a snadno překonat omezení 1024 znaků, pokud tento limit zvýšíte, závisí to také na max_allowed_packet taky

SELECT * FROM (
SELECT *,
@r:= CASE WHEN @g = c.id THEN @r +1 ELSE 1 END rownum,
@g:= c.id catgroup
 FROM category c
 JOIN articles a ON (c.id = a,category_id)
CROSS JOIN (SELECT @g:=0,@r:=0) t2
ORDER BY c.id , a.`date` desc
) t
 WHERE rownum <= 5

Výše bude každý článek zařazen do skupiny kategorií, můžete vidět výsledek rownum alias a ve vnějším dotazu stačí filtrovat výsledky článků na 5 na skupinu kategorií



  1. Jak mohu dotazovat databázi MySQL z aplikace Rails bez modelů?

  2. mysql_fetch_array() očekává, že parametr 1 bude zdrojem, zadaným řetězcem

  3. Zalomení řádku SQL nefunguje

  4. Obrázek Psychopg2 nebyl nalezen