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

Mysql Tham gia 2 bảng và chọn giá trị lớn nhất và nhỏ nhất giữa phạm vi ngày

Tôi tin rằng điều này hiện phù hợp với yêu cầu của bạn?

SELECT *
FROM Orders
JOIN (SELECT price as maxPrice, pair, tr_time as maxTime FROM Rates
    JOIN (SELECT Rates.pair, MAX(Rates.price) AS price
        FROM Rates, Orders 
        WHERE (Rates.tr_time between Orders.opentime and Orders.closetime) 
        GROUP BY Rates.pair) 
    as MaxPrices USING (price, pair)) maxRates USING (pair)
JOIN (SELECT price AS minPrice, pair, tr_time as minTime FROM Rates
        JOIN (SELECT Rates.pair, MIN(Rates.price) AS price
            FROM Rates, Orders 
            WHERE (Rates.tr_time between Orders.opentime and Orders.closetime) 
            GROUP BY Rates.pair) 
    as minPrices USING (price, pair)) minRates USING (pair);

Cấu trúc mã của bạn quá kém để tôi thực sự tìm ra những gì đang xảy ra, nhưng về cơ bản có vẻ như bạn không biết rằng các toán tử tổng hợp như MAX() chỉ trả về một giá trị duy nhất.

Bạn cũng không rõ mình muốn giá tối thiểu / tối đa là bao nhiêu (Tôi đã giả định rằng giá của nó theo cặp pair )

Chạy mã và xem nó có trả về đúng không? Nếu không, hãy cho tôi biết nơi nó không khớp và tôi có thể bắt đầu vá nó!

CHỈNH SỬA Kết quả mới:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chèn nhiều mảng vào cơ sở dữ liệu?

  2. Mệnh đề 'WHERE' trong MySQL loại trừ các kết quả trong truy vấn con

  3. Cách tốt nhất để thiết kế một API REST với nhiều bộ lọc?

  4. MySQL:Sử dụng DATETIME làm khóa chính

  5. Thêm nút Xóa vào bảng kết quả PHP