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

多対多の関係は、によって選択して注文します

    おそらくこれに似たものです:

    SELECT
        a.person_id
    FROM
        table AS a,
        table AS b
    WHERE
        a.person_id = b.person_id AND
        a.favorite_id = 1 AND
        b.favorite_id = 2
    ORDER BY
        ( IF( a.is_main_favorite = "y", 1, 0 )
          +
          IF( b.is_main_favorite = "y", 1, 0 ) ) DESC
    

    ちなみに、IF呼び出しが不要になるように、データベースにy/nではなく1/0を格納することをお勧めします



    1. Hibernate + Javaでのパフォーマンスは遅くなりますが、同じネイティブOracleクエリでTOADを使用すると高速になります

    2. ANSIJOINクエリと非ANSIJOINクエリのパフォーマンスは異なりますか?

    3. 重要なSQLデータベースを回復するための2020年に最適なSQL回復ツール

    4. 自動インクリメントのギャップを削除します