Problem:
Sie haben eine assoziative Tabelle, in der Elemente angezeigt werden können gehören zu mehreren Kategorien. Wie können Sie nur die Elemente auswählen, die zu einem bestimmten Satz von Kategorien gehören?
Lösung:
Um Elemente auszuwählen, die mehrere spezifische Werte für eine Spalte erfüllen, gibt es Zwei Hauptansätze in MySQL:
Selbstverknüpfungsmethode:
Diese Methode vergleicht mehrere Zeilen aus derselben Tabelle in einem Verknüpfungsvorgang. Um beispielsweise Elemente in den Kategorien 201 und 202 auszuwählen:
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-Methode:
Diese Methode gruppiert Zeilen nach einer Spalte und verwendet COUNT() aggregieren, um zu überprüfen, ob ein Artikel zu allen angegebenen Kategorien gehört. So wählen Sie beispielsweise Elemente in den Kategorien 201 und 202 aus:
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
Die Wahl zwischen diesen beiden Methoden hängt von der Anzahl der gesuchten Kategorien und Leistungsaspekten ab.
Das obige ist der detaillierte Inhalt vonWie wähle ich Elemente aus, die zu mehreren Kategorien in MySQL gehören?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!