Đầu tiên, khi bạn sử dụng join
, bạn nên luôn luôn có on
, mặc dù MySQL không yêu cầu điều này. Nếu bạn muốn cross join
, sau đó hãy nói rõ ràng về điều đó.
Thứ hai, bạn không sử dụng tm_markets
ở tất cả các bảng trong truy vấn. Nó không cần thiết, vì vậy hãy xóa nó đi.
Truy vấn kết quả sẽ hoạt động:
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
Bởi vì bạn chỉ chọn một sản phẩm, một nhóm group by
có lẽ là không cần thiết. Tuy nhiên, bạn có thể cân nhắc điều này:
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`
Điều đó sẽ trả về thông tin cho tất cả các sản phẩm.