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

Truy vấn hai db bằng cách sử dụng nhóm theo và hiển thị thông tin chi tiết

THAM GIA với họ:

SELECT r.product_id, i.brand, i.name, i.category, DATE_FORMAT( r.inputTime, '%e-%b' ) AS inputTime, r.shopType, r.price AS minimum_price, r.record_id
FROM (  SELECT *
        FROM itemRecord
        WHERE product_id = '1'
        ORDER BY price ASC, inputTime DESC) AS r
INNER JOIN itemInfo As i
ON r.product_id = i.product_id
WHERE i.id = r.product_id
GROUP BY DATE(r.inputTime)
LIMIT 0, 7

Giải thích:

Tôi thực hiện một truy vấn bên trong hiển thị thứ tự bảng theo price ASC thay vì mặc định, hãy nói id ASC . Khi bạn GROUP BY các hàng, nó sử dụng các cột từ hàng đầu tiên theo mặc định, trong trường hợp này là cột có giá thấp nhất.

Giải pháp của bạn không hoạt động vì nó cũng có thể đã chọn id đầu tiên chứ không phải hàng giá thấp nhất. Cột duy nhất đúng là MIN (r.price), nhưng như bạn nhận thấy rằng hàm đó không ảnh hưởng đến các cột khác trong kết quả.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hợp nhất và sắp xếp hai Bộ sưu tập hùng hồn?

  2. Giá trị cột chọn bên ngoài trong truy vấn con đã tham gia?

  3. Thủ tục lưu trữ MySQL so với truy vấn phức tạp

  4. nhận giá trị từ cơ sở dữ liệu MySQL với PHP

  5. Cách viết câu lệnh IF ELSE trong truy vấn MySQL