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

他のテーブルに基づくSQLクエリ

    このクエリを試してください:

    SELECT m2.movieId
    FROM mMoviesGenres m1
    INNER JOIN mMoviesGenres m2
        ON m1.genreID = m2.genreID
    WHERE m1.movieId = 1 AND
          m2.movieId <> 1
    GROUP BY m2.movieId
    HAVING COUNT(*) = (SELECT COUNT(*) FROM mMoviesGenres WHERE movieId = 1)
    

    更新:

    少なくとも2つのジャンルに関して類似した映画を見つけたい場合は、このHAVINGを使用してください。 条項:

    HAVING COUNT(*) >= 2
    


    1. Oracleの時間値にメリディエムインジケーター(AM / PM)を追加する方法

    2. 値を float としてキャストできません

    3. LIMITが設定されていない場合、PDO/MySQLにデフォルトのLIMITを設定します

    4. SQLServerでの自動プラン修正