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

Join-Tabelle mit MAX-Wert von einer anderen

Die kanonische Herangehensweise besteht darin, eine Unterabfrage zu verwenden, um die Produkte und ihre Höchstpreise aus dem product_supplier zu ermitteln Tabelle, und diese Unterabfrage dann mit order zu verknüpfen um die gewünschte Ergebnismenge zu erhalten.

SELECT t1.orderID,
       t1.productID,
       COALESCE(t2.cost_price, 0.0) AS cost_price  -- missing products will appear
FROM order t1                                      -- with a zero price
LEFT JOIN
(
    SELECT productID, MAX(cost_price) AS cost_price
    FROM product_supplier
    GROUP BY productID
) t2
    ON t1.productID  = t2.productID AND
       t1.cost_price = t2.cost_price