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.