Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A consulta SELECT retorna 1 linha de cada grupo


Existem muitas alternativas para resolver isso, uma que eu recomendo é juntar uma subconsulta que obtém separadamente o ID mais recente (assumindo que a coluna é AUTO_INCREMENT edição ) para cada store_ID .
SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  store_ID, MAX(ID) max_ID
            FROM    tableName
            GROUP BY store_ID
        ) b ON a.store_ID = b.store_ID AND
                a.ID = b.max_ID

para um melhor desempenho, certifique-se de ter um índice nestas colunas:ID e store_id .

ATUALIZAÇÃO 1

se você quiser ter limite para todos os registros, use isso abaixo,
SELECT ID, product_Name, store_ID
FROM   tableName a
WHERE
  (
     SELECT COUNT(*) 
     FROM   tableName b
     WHERE  b.store_ID = a.store_ID AND b.ID >= a.ID
  ) <= 2;