sql >> Database teknologi >  >> RDS >> Mysql

Få de højeste resultater i et JOIN

Du kan bruge MAX-funktionen og et undervalg for at få det maksimale bud for hver auktion. Hvis du slutter dig til dette undervalg med dine andre tabeller og indstiller where-klausulen som følger, skulle du få det, du leder efter.

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

Håber det hjælper.



  1. B-Tree vs Hash Tabel

  2. Sådan opdeles en kommasepareret værdi i kolonner

  3. Hvordan kan jeg sænke en MySQL-dump for ikke at påvirke den nuværende belastning på serveren?

  4. Kombiner SQLite Count() med GROUP BY for at tilføje en "Count"-kolonne til dit resultatsæt