sql >> Databasteknik >  >> RDS >> Mysql

Sammanfoga tabell med MAX-värde från en annan

Det kanoniska sättet att närma sig detta är att använda en underfråga för att identifiera produkterna och deras maxpriser från product_supplier tabell och sedan för att ansluta den här underfrågan till order för att få den resultatuppsättning du vill ha.

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


  1. Lägg till månader till ett datum i PostgreSQL

  2. BESTÄLL AV med inre fråga, vilket ger ORA-00907 saknad höger parentes

  3. Varför ska man använda primärnyckeln inte null i TSQL?

  4. Varför gillar inte PostgreSQL tabellnamn med VERSALER?