sql >> Databáze >  >> RDS >> Mysql

Spojit řádek s řádkem MAX v jiné tabulce?

Je to nepříjemně složité. Bylo by pro vás lepší s příznakem „vítěz“ v každé vítězné aukci.

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

Všimněte si, že aukce s nulovými nabídkami nebudou uvedeny vůbec a aukce s remízou (může se to stát?) se objeví jednou pro každou vyrovnanou nabídku.



  1. Soulad s GDPR a váš SQL Server

  2. Provádění více dotazů v codeigniter, které nelze provést jeden po druhém

  3. Převeďte DateTime v C# na formát yyyy-MM-dd a uložte jej do MySql DateTime Field

  4. Chyba MySQL:2013, ztracené připojení k serveru MySQL při „čtení počátečního komunikačního paketu“, systémová chyba:0