Mysql
 sql >> база данни >  >> RDS >> Mysql

MIN/MAX цена за всеки продукт (запитване)

Първо, когато използвате join , трябва винаги имат on клауза, въпреки че MySQL не изисква това. Ако искате cross join , след което бъдете изрични за това.

Второ, не използвате tm_markets таблица изобщо в заявката. Не е необходимо, така че го премахнете.

Получената заявка трябва да работи:

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 

Тъй като избирате само един продукт, group by вероятно не е необходимо. Може обаче да помислите за това:

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`

Това ще върне информацията за всички продукти.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получа данни от база данни и ехо на php страница?

  2. pdo вмъкване на изображение в базата данни директно - винаги вмъкване на BLOB - 0B

  3. как да вмъкна множество стойности в mysql и да избегна дублирането

  4. Mysql:Разменете данни за различни редове

  5. Как да проверите размера на базата данни и таблиците на MySQL