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

MIN/MAX pris for hvert produkt (forespørgsel)

Først når du bruger join , bør du altid har en on klausul, selvom MySQL ikke kræver dette. Hvis du ønsker en cross join , så vær eksplicit om det.

For det andet bruger du ikke tm_markets tabel overhovedet i forespørgslen. Det er ikke nødvendigt, så fjern det.

Den resulterende forespørgsel burde virke:

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 

Fordi du kun vælger ét produkt, en group by er nok ikke nødvendigt. Du kan dog overveje dette:

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`

Det vil returnere oplysningerne for alle produkter.



  1. Indpak nogle input med dets afkrydsningsfelt og send til databasen

  2. Doctrine 2 mysql FIELD funktion i rækkefølge efter

  3. XAMPP/MySQL:kunne ikke åbne single-table tablespace-filen .\mysql\innodb_index_stats.ibd efter genstart af MySQL

  4. MySQL LOAD DATA med multiline data