sql >> データベース >  >> RDS >> Mysql

別のテーブルのMAX行と行を結合しますか?

    煩わしいほど複雑です。勝ったauction_bidごとに「勝者」フラグを立てたほうがいいでしょう。

    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
    

    入札がゼロのオークションはまったく表示されず、同点のオークション(発生する可能性はありますか?)は、同点の入札ごとに1回表示されることに注意してください。



    1. MariaDBで列のデータ型を確認する4つの方法

    2. YEAR()の例– MySQL

    3. SQLServerトランザクションレプリケーションの問題のトラブルシューティング

    4. 単一のSQLステートメントを使用して複数のmax()値を選択する