sql >> Databasteknik >  >> RDS >> Mysql

Få högsta resultat i en JOIN

Du kan använda MAX-funktionen och ett underval för att få det högsta budet för varje auktion. Om du går med i detta underval med dina andra tabeller och ställer in where-satsen enligt följande bör du få det du letar 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

Hoppas det hjälper.



  1. Kan jag ha en främmande nyckel som refererar till en kolumn i en vy i SQL Server?

  2. hur man returnerar en mysql select som en array av arrayer i json med php

  3. Hur använder man kryssrutor för att ange sant (1) eller falskt (0) i mySQL OCH visa som markerat i php/html-form?

  4. MYSQL SUMMGRUPP EFTER