複数の行の特定の列値に出現する ID の検索
MySQL 連想テーブルでは、複数の特定のカテゴリに存在する項目を識別することが課題となります。 AND 演算子と OR 演算子を使用した最初のアプローチは、指定されたすべてのカテゴリにアイテムが存在するという要件を考慮していないため、効果がありません。
この問題に対処するには、自己結合手法を使用できます。
<code class="sql">SELECT c1.item_id FROM item_category AS c1 INNER JOIN item_category AS c2 ON c1.item_id = c2.item_id WHERE c1.category_id = 201 AND c2.category_id = 202</code>
このメソッドは、テーブル内の 2 つの行を結合して結果セットに 1 つの行を作成し、複数のカテゴリ条件を評価できるようにします。
別のアプローチには、GROUP BY:
<code class="sql">SELECT c.item_id, COUNT(*) AS cat_count FROM item_category AS c WHERE c.category_id IN (201,202) GROUP BY c.item_id HAVING cat_count = 2</code>
以上がMySQL 連想テーブル内の複数の特定のカテゴリに存在する項目を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。