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

Nối hàng với hàng MAX trong một bảng khác?

Nó phức tạp một cách khó chịu. Sẽ tốt hơn nếu bạn có một lá cờ "người chiến thắng" trong mỗi cuộc đấu giá chiến thắng.

SELECT * FROM auctions a
INNER JOIN 
(
    /* now get just the winning rows */
    SELECT * FROM auction_bids x
    INNER JOIN
    (
        /* how to tell the winners */
        SELECT auction_id, MAX(bid_amount) as winner
        FROM auction_bids
        GROUP BY auction_id
    ) y
    ON x.auction_id = y.auction_id
    AND x.bid_amount = y.winner
) b
ON a.auction_id = b.auction_id

Lưu ý rằng các phiên đấu giá không có giá thầu sẽ hoàn toàn không được liệt kê và các phiên đấu giá có ràng buộc (điều đó có thể xảy ra không?) Sẽ xuất hiện một lần cho mỗi giá thầu được ràng buộc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tốt hơn là nên làm với một liên hợp trong SQL hoặc các truy vấn riêng biệt và sau đó sử dụng php array_merge?

  2. MySQL:Nhận giá trị cao thứ n cho mỗi nhóm trong bảng

  3. Tải lên cơ sở dữ liệu mysql lớn trên AWS RDS bằng cách sử dụng putty - 'Máy chủ MySQL đã biến mất'

  4. SQL Injection trên BadStore

  5. Làm cách nào để tìm kiếm dấu gạch chéo (\) trong MySQL? và tại sao không cần thoát (\) cho where (=) nhưng lại bắt buộc phải Like?