Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie finde ich Elemente, die in mehreren spezifischen Kategorien in einer assoziativen MySQL-Tabelle vorhanden sind?

Barbara Streisand
Freigeben: 2024-10-28 06:55:02
Original
949 Leute haben es durchsucht

How to Find Items Present in Multiple Specific Categories in a MySQL Associative Table?

IDs finden, die in bestimmten Spaltenwerten in mehreren Zeilen vorkommen

In einer assoziativen MySQL-Tabelle stellt die Identifizierung von Elementen, die in mehreren spezifischen Kategorien vorhanden sind, eine Herausforderung dar . Der anfängliche Ansatz mit AND- und OR-Operatoren ist wirkungslos, da er nicht die Anforderung des Vorhandenseins von Elementen in allen angegebenen Kategorien berücksichtigt.

Um dieses Problem zu beheben, kann eine Selbstverknüpfungstechnik eingesetzt werden:

<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>
Nach dem Login kopieren

Diese Methode verbindet zwei Zeilen in der Tabelle, um eine einzelne Zeile im Ergebnissatz zu erstellen, was die Auswertung mehrerer Kategoriebedingungen ermöglicht.

Ein alternativer Ansatz beinhaltet die Verwendung von 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>
Nach dem Login kopieren

Diese Abfrage gruppiert Elemente nach ID und zählt die Anzahl der Kategorien, zu denen sie gehören. Die HAVING-Klausel stellt sicher, dass nur Elemente zurückgegeben werden, die in allen angegebenen Kategorien vorhanden sind.

Beide Techniken bieten effiziente Lösungen zum Suchen von Elementen in mehreren Zeilen mit bestimmten Spaltenwerten, wobei ihre Leistung je nach Anzahl der abgefragten Kategorien variiert.

Das obige ist der detaillierte Inhalt vonWie finde ich Elemente, die in mehreren spezifischen Kategorien in einer assoziativen MySQL-Tabelle vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!