Dado que está agrupando por site_id
, solo se devolverá 1 deal_woot
fila. Intente ordenar por MAX()
que devolverá el más alto id
por cada site_id
.
SELECT
deal_woot.*,
site.woot_off,
site.name AS site_name
FROM deal_woot
INNER JOIN site ON site.id = site_id
WHERE site_id IN (2, 3, 4, 5, 6)
GROUP BY site_id
ORDER BY MAX(deal_woot.id) DESC
LIMIT 5
Nota: Puesto que es UB lo que será devuelto en realidad deal_woot
fila, tratar spiting seguimiento de la consulta:
SELECT
deal_woot.*,
site.woot_off,
site.name AS site_name
FROM site JOIN (
SELECT site_id, MAX(deal_woot.id) MaxID
FROM deal_woot
WHERE site_id IN (2, 3, 4, 5, 6)
GROUP BY site_id
) sg ON site.id = sg.site_id
JOIN deal_woot
ON site.id = deal_woot.site_id AND deal_woot.id = sg.MaxID
ORDER BY sg.MaxID DESC
LIMIT 5
¿Puedes dar un ejemplo de lo que estás tratando de lograr? No puede tener campos en su selección que no agrupe o use en una función agregada como sum(). –