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

MIN/MAX-Preis für jedes Produkt (Abfrage)

Erstens, wenn Sie join verwenden , sollten Sie immer einen on haben -Klausel, obwohl MySQL dies nicht erfordert. Wenn Sie einen cross join wünschen , dann sei explizit.

Zweitens verwenden Sie nicht die tm_markets Tabelle überhaupt in der Abfrage. Es wird nicht benötigt, also entfernen Sie es.

Die resultierende Abfrage sollte funktionieren:

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 

Weil Sie nur ein Produkt auswählen, ein group by ist wohl nicht nötig. Sie könnten jedoch Folgendes in Betracht ziehen:

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`

Dadurch werden die Informationen für alle Produkte zurückgegeben.