問題:
您有一個關聯表,其中的項目可以屬於多個類別。如何只選擇屬於一組指定類別的項目?
解決方案:
要選擇滿足列的多個特定值的項目,有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中文網其他相關文章!