Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL LEFT JOIN, GROUP BY e ORDER BY non funziona come richiesto

Sembra che sia impossibile utilizzare un ORDER BY su un riepilogo GROUP BY. La mia logica fondamentale è viziata. Dovrò eseguire la seguente sottoquery.

SELECT `p`.*, `pp`.`price` FROM `products` `p` 
LEFT JOIN (
    SELECT `price` FROM `product_price` ORDER BY `date_updated` DESC
) `pp` 
ON `p`.`product_id` = `pp`.`product_id`
GROUP BY `p`.`product_id`;

Ciò richiederà un calo delle prestazioni, ma poiché è la stessa sottoquery per ogni riga, non dovrebbe essere male.