sql >> Databáze >  >> RDS >> Mysql

MIN/MAX cena za každý produkt (dotaz)

Za prvé, když použijete join , měli byste vždy mít on klauzule, i když to MySQL nevyžaduje. Pokud chcete cross join , pak se o tom vyjadřujte explicitně.

Za druhé, nepoužíváte tm_markets tabulky vůbec v dotazu. Není potřeba, proto jej odstraňte.

Výsledný dotaz by měl fungovat:

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 

Protože vybíráte pouze jeden produkt, group by asi není potřeba. Můžete však zvážit toto:

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`

Tím se vrátí informace o všech produktech.



  1. Existuje nějaký způsob, jak vložit nebo aktualizovat SQLBulkCopy?

  2. MySQL ALTER TABLE se zablokuje

  3. Potřebujete pomoc odborníka při řešení drobných změn v dotazu na prostorová data

  4. Schema Pattern Search to Data Class Association