Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Cena MIN/MAX dla każdego produktu (zapytanie)

Po pierwsze, gdy używasz join , powinieneś zawsze mieć on klauzula, chociaż MySQL tego nie wymaga. Jeśli chcesz cross join , a następnie wyraźnie o tym powiedz.

Po drugie, nie używasz tm_markets w ogóle w zapytaniu. Nie jest potrzebny, więc usuń go.

Wynikowe zapytanie powinno działać:

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 

Ponieważ wybierasz tylko jeden produkt, group by prawdopodobnie nie jest konieczne. Możesz jednak rozważyć to:

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`

Spowoduje to zwrócenie informacji o wszystkich produktach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Biblioteki JavaScript, które pozwalają na zapytania podobne do SQL na danych JSON?

  2. MySQL:Jak uzyskać zmiany ostatniej AKTUALIZACJI

  3. Wykryj typ danych podczas używania fetch_array z MySQLi

  4. Wstaw wybrane dane do bazy danych

  5. mysql Jak znaleźć różnicę między dwoma wierszami w tej samej tabeli i wyświetlić listę niedopasowanych rekordów? mysql znajduje niedopasowane wiersze w tabeli