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

複数の条件に一致する1対多の関係でクエリに苦労しているMySQL

    これはリレーショナル部門 問題。

    COUNTで提案する方法 MySQLでおそらく最も簡単です

    SELECT product_id
    FROM product_attributes pa
    WHERE (attribute='size' and value='medium')
    OR (attribute='colour' and value='blue')
    GROUP BY product_id
    HAVING COUNT(DISTINCT CONCAT(attribute,value) ) = 2
    

    NOT EXISTSを2つ使用する別のアプローチがあります リンクされた記事にありますが、MySQLはCTEをサポートしていないため、非常に面倒です。



    1. sql個別、2列を取得

    2. このMySQLテーブルを最もパフォーマンスの高い方法でクエリする方法は?

    3. Oracleの別のテーブルからテーブルを更新します

    4. Mysql-それぞれがアルファベットの文字で始まる26のレコードを検索する方法は?