Tengo dos tablas en mi base de datos:MySQL seleccione Unir dónde y cuando
productos
- ID (int, clave principal)
- nombre (varchar)
ProductTags
- product_id (int)
- tag_id (int)
me gustaría seleccionar los productos que tienen todas las etiquetas dadas. Probé:
SELECT
*
FROM
Products
JOIN ProductTags ON Products.id = ProductTags.product_id
WHERE
ProductTags.tag_id IN (1, 2, 3)
GROUP BY
Products.id
pero me da productos que tengan cualquiera de las etiquetas dadas, en lugar de tener todas las etiquetas dadas. Escribir WHERE tag_id = 1 AND tag_id = 2
no tiene sentido, porque no se devolverán filas.
¿No entiendo lo que está buscando? ¿Te importa elaborar con algunos datos y ejemplos? – diagonalbatman