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

Prezzo MIN/MAX per ogni prodotto (richiesta)

Innanzitutto, quando usi join , dovresti sempre avere un on clausola, anche se MySQL non lo richiede. Se vuoi un cross join , quindi sii esplicito al riguardo.

Secondo, non usi tm_markets tabella nella query. Non è necessario, quindi rimuovilo.

La query risultante dovrebbe funzionare:

SELECT MIN(`map`.`Product_Price`) as `minProductPrice`,
       MAX(`map`.`Product_Price`) as `maxProductPrice`,
       `pr`.`Product_Name` as `productName`
FROM `bm_market_products` `map` join
     `bm_products` as `pr`
     on map`.`Product_Id` = `pr`.`Product_Id`
WHERE `map`.`Product_Id` = 1 

Perché stai scegliendo un solo prodotto, un group by probabilmente non è necessario. Potresti considerare questo, tuttavia:

SELECT MIN(`map`.`Product_Price`) as `minProductPrice`,
       MAX(`map`.`Product_Price`) as `maxProductPrice`,
       `pr`.`Product_Name` as `productName`
FROM `bm_market_products` `map` join
     `bm_products` as `pr`
     on map`.`Product_Id` = `pr`.`Product_Id`
group by `map`.`Product_Id`

Ciò restituirà le informazioni per tutti i prodotti.