Tout d'abord, lorsque vous utilisez join
, vous devriez toujours avoir un on
clause, même si MySQL ne l'exige pas. Si vous voulez une cross join
, alors soyez explicite à ce sujet.
Deuxièmement, vous n'utilisez pas les tm_markets
table du tout dans la requête. Il n'est pas nécessaire, alors supprimez-le.
La requête résultante devrait fonctionner :
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
Parce que vous ne choisissez qu'un seul produit, un group by
n'est probablement pas nécessaire. Cependant, vous pourriez envisager ceci :
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`
Cela renverra les informations pour tous les produits.