sql >> Database >  >> RDS >> Mysql

Rij samenvoegen met MAX rij in een andere tabel?

Het is irritant ingewikkeld. U bent beter af met een "winnaar"-vlag in elk winnend veilingbod.

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

Houd er rekening mee dat veilingen met nul biedingen helemaal niet worden vermeld, en veilingen met gelijkspel (kan dat gebeuren?) zullen één keer verschijnen voor elk gelijkstaand bod.



  1. Hoe tel je hoeveel artsen er door elke patiënt worden geboekt?

  2. Wat is de opslaggrootte van BIT(1)?

  3. Hoe leeftijd in jaren, maanden en dagen te krijgen met Oracle

  4. MySQL Deadlock met een insert die een trigger opheft