Mysql
 sql >> Database >  >> RDS >> Mysql

mysql n:m relazione:trova le righe con diverse relazioni specifiche

Puoi usare questa soluzione. Questo ottiene tutti i prodotti che contengono TUTTO parole chiave 1, 23 e 54:

SELECT a.*
FROM products a
INNER JOIN product_tags b ON a.product_id = b.product_id
WHERE b.tag_id IN (1,23,54)
GROUP BY a.product_id
HAVING COUNT(1) = 3

Dove 3 è il numero di articoli nel tuo WHERE IN list, così puoi regolare di conseguenza in base alla quantità di tag che vuoi controllare.