sql >> Base de Datos >  >> RDS >> Mysql

relación mysql n:m:encuentra filas con varias relaciones específicas

Puedes usar esta solución. Esto obtiene todos los productos que contienen TODOS palabras clave 1, 23 y 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

Donde 3 es el número de elementos en su WHERE IN lista, para que pueda ajustar según corresponda en función de la cantidad de etiquetas que desea verificar.