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

MYSQL、Max、Group by、Max

    SELECT  g.*, d.*
    FROM    MovieGenre g
            INNER JOIN MovieDetail d
                ON g.MovieID = d.MovieID
            INNER JOIN
            (
                SELECT  a.Genre, MAX(b.Rating) maxRating
                FROM    MovieGenre a
                        INNER JOIN MovieDetail b
                            ON a.MovieID = b.MovieID
                GROUP   BY a.Genre
            ) sub ON    g.Genre = sub.Genre AND
                        d.rating = sub.maxRating
    

    スキーマ設計に問題があります。 Movieの場合 多くのGenreを持つことができます Genreも同様です 多くのMovieに含めることができます 、3つのテーブルのデザインである必要があります。

    MovieDetailsテーブル

    • MovieID(PK)
    • MovieName
    • MovieRating

    ジャンルテーブル

    • GenreID(PK)
    • GenreName

    Movie_Genreテーブル

    • MovieID(FK)-GenreIDを持つ複合主キー
    • GenreID(FK)


    1. MySQL外部キー

    2. 選択したポイントから特定の距離にあるすべてのアドレスを見つけるための最良のアプローチは何ですか

    3. replicate-rewrite-dbには実際のアプリケーションがありますか?

    4. 漢字でMysql全文検索を実行する方法は?