Maison > base de données > tutoriel mysql > le corps du texte

Comment rechercher des éléments présents dans plusieurs catégories spécifiques dans une table associative MySQL ?

Barbara Streisand
Libérer: 2024-10-28 06:55:02
original
949 Les gens l'ont consulté

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

Recherche des identifiants apparaissant dans des valeurs de colonne spécifiques sur plusieurs lignes

Dans une table associative MySQL, l'identification des éléments présents dans plusieurs catégories spécifiques pose un défi . L'approche initiale utilisant les opérateurs AND et OR est inefficace, car elle ne tient pas compte de l'exigence de présence d'éléments dans toutes les catégories spécifiées.

Pour résoudre ce problème, une technique d'auto-jointure peut être utilisée :

<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>
Copier après la connexion

Cette méthode joint deux lignes du tableau pour créer une seule ligne dans l'ensemble de résultats, permettant l'évaluation de plusieurs conditions de catégorie.

Une approche alternative consiste à utiliser 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>
Copier après la connexion

Cette requête regroupe les éléments par ID et compte le nombre de catégories auxquelles ils appartiennent. La clause HAVING garantit que seuls les éléments présents dans toutes les catégories spécifiées sont renvoyés.

Les deux techniques offrent des solutions efficaces pour rechercher des éléments sur plusieurs lignes avec des valeurs de colonne spécifiques, leurs performances variant en fonction du nombre de catégories interrogées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!