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.