Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erzielen Sie die höchsten Ergebnisse in einem JOIN

Sie können die MAX-Funktion und eine Unterauswahl verwenden, um das maximale Gebot für jede Auktion zu erhalten. Wenn Sie diese Unterauswahl mit Ihren anderen Tabellen verbinden und die where-Klausel wie folgt setzen, sollten Sie bekommen, wonach Sie suchen.

SELECT a.id, a.title, ab.bid_points, u.display_name 
FROM Auction AS a
INNER JOIN (SELECT auction_id, MAX(bid_points) AS maxAmount FROM auction_bids GROUP BY auction_id) AS maxBids ON maxBids.auction_id = a.id
INNER JOIN auction_bids AS ab ON a.id = ab.auction_id
INNER JOIN users AS u ON u.id = ab.user_id
WHERE ab.auction_id = maxBids.auction_id AND ab.bid_amount = maxBids.maxAmount

Hoffe das hilft.