Sto provando a selezionare elementi da una tabella associativa che hanno soddisfatto due o più valori dello stesso campo, suoni confusi, lasciatemi spiegare.MySQL Seleziona ID che si verificano su righe diverse con più valori specifici per una colonna
+-----------------------+
| 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 gli elementi che sono nelle categorie che passano. Quindi, per esempio, se passo gli ID di categoria di 201 e 202, vorrei solo gli elementi che sono in ENTRAMBI le categorie (possono avere altre categorie ma devono essere almeno nelle categorie che sto interrogando), quindi in questo caso, vorrei articoli 1 e 2 solo in quanto sono gli unici che sono nelle categorie 201 e 202.
la mia dichiarazione di SQL iniziale era qualcosa di simile
SELECT * FROM item_category WHERE category_id = 201 AND category_id = 202;
Ma, ovviamente, che non funzionerà.
SELECT * FROM item_category WHERE category_id = 201 OR category_id = 202;
Anche la query precedente non funzionerà perché restituirà gli elementi 4 e 3.
Quindi, come sceglierei solo gli elementi che devono essere almeno in entrambe le categorie?
Ricordare che potrei passare più di 2 ID di categoria.
Grazie per il vostro aiuto.
Grazie, la seconda query sembra essere più adatta in questo caso e sembra funzionare bene! Grazie ancora! – flicker