MySQL Select ID che si verificano su righe diverse con più valori specifici per una colonna

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

  •  29-10-2019
  •  | 
  •  

Domanda

Sto cercando di selezionare elementi da una tabella associativa che hanno soddisfatto due o più valori dello stesso campo, sembra confuso, lasciami spiegare.

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

Nella tabella, voglio essere in grado di selezionare solo elementi nelle categorie che passo. Quindi, ad esempio, se approvo ID categoria di 201 e 202, vorrei solo articoli che si trovano in entrambe le categorie (possono avere altre categorie ma devono essere in almeno nelle categorie che sto interrogando), quindi in questo caso, Vorrei gli articoli 1 e 2 solo poiché sono gli unici che si trovano nelle categorie 201 e 202.

La mia istruzione SQL iniziale era qualcosa di simile

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

Ma ovviamente non funzionerà.

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

Anche la query sopra non funzionerà perché restituirà anche gli articoli 4 e 3.

Quindi, come dovrei selezionare solo gli elementi che devono essere almeno in entrambe le categorie?

Tieni presente che potrei passare più di 2 ID categoria.

Grazie per l'aiuto.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top