ID de selección de MySQL que ocurren en diferentes filas con múltiples valores específicos para una columna

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

  •  29-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de seleccionar elementos de una tabla asociativa que hayan satisfecho dos o más valores del mismo campo, suena confuso, déjame explicarte.

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

En la tabla, quiero poder seleccionar solo elementos que se encuentren en las categorías que paso. Entonces, por ejemplo, si paso ID de categoría de 201 y 202, solo quisiera elementos que estén en ambas categorías (pueden tener otras categorías pero deben estar en las categorías que estoy consultando), por lo que en este caso, Me gustaría los artículos 1 y 2 solo ya que son los únicos que están en las categorías 201 y 202.

Mi declaración inicial de SQL fue algo así como

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

Pero obviamente eso no funcionará.

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

La consulta anterior tampoco funcionará porque también devolverá los artículos 4 y 3.

Entonces, ¿cómo sería solo seleccionar elementos que al menos tengan que estar en ambas categorías?

Tenga en cuenta que podría pasar más de 2 ID de categoría.

Gracias por tu ayuda.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top