sql >> Database >  >> RDS >> Mysql

De hoogste resultaten behalen in een JOIN

U kunt de MAX-functie en een subselectie gebruiken om het maximale bod voor elke veiling te krijgen. Als je deze subselect samen met je andere tabellen samenvoegt en de where-clausule als volgt instelt, zou je moeten krijgen wat je zoekt.

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

Ik hoop dat dat helpt.



  1. Een-op-veel selecteren in Jooq

  2. mysqldump doet een gedeeltelijke back-up - onvolledige tabeldump

  3. Kolom bijwerken met gemiddelde berekening

  4. Booleaanse kolom maken in MySQL met false als standaardwaarde?