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

Bliv medlem af række med MAX række i en anden tabel?

Det er irriterende kompliceret. Du ville være bedre stillet med et "vinder"-flag i hvert vindende auktionsbud.

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

Bemærk, at auktioner med nul bud slet ikke vil blive opført, og auktioner med uafgjort (kan det ske?) vises én gang for hvert uafgjort bud.



  1. Homebrew, MySQL 8-understøttelse

  2. Uddrag dag/måned/år fra et tidsstempel på MYSQL

  3. Hvorfor får kørsel af denne forespørgsel med EXECUTE IMMEDIATE den til at mislykkes?

  4. 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' mislykkedes