问题:
您有一个关联表,其中的项目可以属于多个类别。如何只选择属于一组指定类别的项目?
解决方案:
要选择满足列的多个特定值的项目,有MySQL 中的两种主要方法:
自连接方法:
此方法在一个连接操作中比较同一个表中的多行。例如,要选择类别 201 和 202 中的项目:
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
GROUP BY 方法:
此方法按列对行进行分组并使用 COUNT()聚合以验证某个项目是否属于所有指定类别。例如,要选择类别 201 和 202 中的项目:
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
这两种方法之间的选择取决于您要搜索的类别数量和性能考虑。
以上是如何在MySQL中选择属于多个类别的项目?的详细内容。更多信息请关注PHP中文网其他相关文章!