Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL LEFT JOIN, GROUP BY und ORDER BY funktionieren nicht wie gewünscht

Es scheint, dass es unmöglich ist um ein ORDER BY für eine GROUP BY-Zusammenfassung zu verwenden. Meine grundlegende Logik ist fehlerhaft. Ich muss die folgende Unterabfrage ausführen.

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`;

Dies wird die Leistung beeinträchtigen, aber da es sich um dieselbe Unterabfrage für jede Zeile handelt, sollte dies nicht allzu schlimm sein.