ID MySQL Select qui se produit sur différentes lignes avec plusieurs valeurs spécifiques pour une colonne

StackOverflow https://stackoverflow.com/questions/7407001

  •  29-10-2019
  •  | 
  •  

Question

J'essaie de sélectionner des éléments d'une table associative qui ont satisfait deux valeurs ou plus du même champ, cela semble déroutant, laissez-moi vous expliquer.

+-----------------------+
| item_id | category_id |
+-----------------------+
|   1     |    200      |
|   1     |    201      |
|   1     |    202      |
|   2     |    201      |
|   2     |    202      |
|   3     |    202      |
|   3     |    203      |
|   4     |    201      |
|   4     |    207      |
+-----------------------+

Dans le tableau, je veux pouvoir sélectionner uniquement les éléments qui sont dans les catégories que je passe. Ainsi, par exemple, si je passe des identifiants de catégorie 201 et 202, je ne voudrais que des éléments qui sont dans les deux catégories (ils peuvent avoir d'autres catégories mais doivent être dans au moins les catégories que je demande), donc dans ce cas, Je voudrais les articles 1 et 2 seulement car ils sont les seuls qui sont dans les catégories 201 et 202.

Ma déclaration SQL initiale était quelque chose comme

SELECT * FROM item_category WHERE category_id = 201 AND category_id = 202;

Mais évidemment, cela ne fonctionnera pas.

SELECT * FROM item_category WHERE category_id = 201 OR category_id = 202;

La requête ci-dessus ne fonctionnera pas non plus car elle renverra également les articles 4 et 3.

Alors, comment pourrais-je choisir uniquement les éléments qui doivent au moins être dans les deux catégories?

Gardez à l'esprit que je pourrais passer plus de 2 identifiants de catégorie.

Merci de votre aide.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top