sql >> Base de Datos >  >> RDS >> Mysql

La consulta SELECCIONAR devuelve 1 fila de cada grupo

Hay muchas alternativas para resolver esto, una que recomiendo es unirse a una subconsulta que obtiene por separado el último ID (asumiendo que la columna es AUTO_INCREMENT educar ) 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 un mejor rendimiento, asegúrese de tener un índice en estas columnas:ID y store_id .

ACTUALIZACIÓN 1

si desea tener un límite para cada registro, use esto a continuación,

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;