Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giá MIN / MAX cho mỗi sản phẩm (truy vấn)

Đầu tiên, khi bạn sử dụng join , bạn nên luôn luôn 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật trực tiếp Dữ liệu MySQL

  2. Làm cách nào để thêm khóa ngoại khi tạo bảng mới?

  3. Thiết kế cơ sở dữ liệu MySql cho một chương trình đố vui

  4. Chuỗi MySQL đến DATE / TIME hoặc TIMESTAMP

  5. MySQL:Nhận kết quả trả về từ CHÈN CHÈN CHÈN