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

SQL:カラーテーブルの色を検索可能にする

    ここでは条件付き集計を使用します。たとえば、赤と青の場合、次の場所でカードを検索します

    1. 両方の色が存在します
    2. 他の色は存在しません

    つまり、カードの赤と青を数える場合は2を取得する必要があります。すべての色を数える場合は、2も取得する必要があります(1、3、またはそれ以上の色でも同じです)。

    したがって、このクエリを使用して、言及されている色と色の数のみを変更してください:

    select *
    from cards_data where id in
    (
      select cards_id
      from con_cards_colors
      group by cards_id
      having count(case when colors_id in (select id from colors where name in ('Red','Blue')) then 1 end) = 2 -- i.e. find all
      and count(*) = 2 -- i.e. find only those and no others
    );
    


    1. ORACLEJOINを使用してLEFTOUTERJOINまたはRIGHTOUTERJOINを見つける方法(+)

    2. CSVからMySQLDBへのデータの挿入は非常に遅い

    3. 除算(/)がpostgresqlで私の答えを与えていない

    4. MySQLフルテキストストップワードの理論的根拠