sql >> Databasteknik >  >> RDS >> Mysql

Gå med rad med MAX rad i en annan tabell?

Det är irriterande komplicerat. Du skulle ha det bättre med en "vinnarflagga" i varje vinnande 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

Observera att auktioner med nollbud inte kommer att listas alls, och auktioner med oavgjort (kan det hända?) kommer att visas en gång för varje oavgjort bud.



  1. Skillnad mellan dessa två anslutningstabeller?

  2. Meddelandesystem i php mysql

  3. Hur man versionskontrollerar data lagrad i mysql

  4. Hämtar ändringar från tabellen med ElasticSearch JDBC river